Tag: 布局

按下时更改单个ClickableSpan的文本颜色,而不会影响同一TextView中的其他ClickableSpans

我有一个TextView与多个ClickableSpans在其中。 当按下ClickableSpan时,我希望它改变文本的颜色。 我曾尝试设置一个颜色状态列表作为TextView的textColorLink属性。 这不会产生所需的结果,因为当用户单击TextView上的任何位置时,这会导致所有跨度更改颜色。 有趣的是,使用textColorHighlight来改变背景颜色的工作原理如下:点击一个跨度只改变该跨度的背景颜色,并在TextView的其他任何地方单击不做任何事情。 我也尝试设置与ClickableSpans具有相同边界的ForegroundColorSpans,其中我将如上所述的相同颜色状态列表作为颜色资源。 这也不pipe用。 跨度始终保持颜色状态列表中的默认状态的颜色,从不进入按下的状态。 有谁知道如何做到这一点? 这是我使用的颜色状态列表: <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:color="@color/pressed_color"/> <item android:color="@color/normal_color"/> </selector>

以编程方式调整布局的大小(如animation)

我想调整我的活动中的一些布局。 这是主XML的代码: <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1" android:orientation="vertical" > <LinearLayout android:id="@+id/top" android:layout_width="fill_parent" android:layout_height="0dip" android:layout_weight="1" android:background="#3ee3e3" > </LinearLayout> <LinearLayout android:id="@+id/middle" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1"> </LinearLayout> <LinearLayout android:id="@+id/bottom" android:layout_width="fill_parent" android:layout_height="0dip" android:layout_weight="1" android:background="#fe51e6" > </LinearLayout> </LinearLayout> 正如你所看到的,顶部和底部的布局高度是0,中间的布局覆盖了所有的地方。 我想以编程方式减小中间布局大小,同时增加顶部和底部布局大小,直到所有布局具有相同的高度。 我希望它看起来像一个animation。 我该怎么做? 谢谢

如何更改选定/重点ListView项目中的字体颜色?

我正在努力,这显然是一个非常简单的效果,但令人难以置信的是没有find任何直觉的方式,在Android做到这一点。 我有一个ListView,我设法定制的背景图像,以便选定的项目获取突出显示一个新的背景绘制。 这是我创build一个新的风格,我设置android:listSelector属性指向一个StateListDrawable ,我已经指定哪些可绘制的用于每个状态。 然而,每个ListView项目是一个LinearLayout,我有两个TextViews。 我的目标是能够改变这些子视图的文本颜色,只要父母被选中或按下,同时背景可绘制。 我知道有一个ColorStateList但没有成功设置。 有没有人得到这样的工作? 谢谢。

这个观点不受限制

我得到以下错误,我正在使用Android Studio 2.2 Preview 3.我search了Google,但找不到任何资源。 Error: This view is not constrained, it only has design time positions, so it will jump to (0,0) unless you add constraints <TextView android:layout_width="384dp" android:layout_height="207dp" android:textAppearance="?android:attr/textAppearanceLarge" android:text="@string/calc_default_display" android:id="@+id/textView" android:background="#ffffff" android:layout_margin="0dp" android:gravity="bottom|end" android:textSize="70sp" android:nestedScrollingEnabled="false" android:maxLines="2" android:maxLength="17" tools:layout_editor_absoluteX="0dp" tools:layout_editor_absoluteY="0dp" />

摆脱内嵌块图像下方的空间

我怎样才能摆脱图像的底部和包装之间的空间,同时保持图像内联块? 为什么发生这种情况? http://jsfiddle.net/dJVxb/2/ HTML: <div id="wrapper"> <img src="https://twimg0-a.akamaihd.net/profile_images/1735360254/icon_reasonably_small.jpg" > </div> CSS: ​#wrapper { background:green; } img { display:inline-block; margin:0; }

检测状态栏可见性/ TYPE_SYSTEM_OVERLAY不会自动resize

我使用众所周知的TYPE_SYSTEM_OVERLAY方法来创build一个总是在其他视图之上的全屏叠加。 在Moto Atrix2 API15和API 10到17的每个AVD ,当状态栏被另一个应用程序隐藏时,叠加视图会自动resize(垂直扩展)。 我认为,叠加层似乎“保持在所有其他视图的顶部”。 当状态栏再次出现时,叠加层再次自动缩小其大小(垂直像素减less,基本上减去状态栏的高度)。 这是所需的行为,我倾向于认为这不是例外或有缺陷的行为,因为它在许多不同的仿真器以及至less一个设备制造商( 摩托罗拉 ),也许更多,但我没有访问addtl devices. 问题:在Samsung GS2 (API15)也testing过Kindle Fire (API10?) ,当状态栏被另一个应用程序隐藏时,覆盖图不会自动resize(填满状态栏的空间)全屏幕的应用程序)。 在这些设备上,第一次创build视图后,我没有从视图的onSizeChanged覆盖中获得更多的事件。 以下是相关的代码: params = new WindowManager.LayoutParams( 1, WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY, WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE |WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL, PixelFormat.TRANSPARENT); wm.addView(sizeLayout, params); sizeLayout具有onSizeChanged覆盖。 我已经玩过了我能find的所有layoutparam ,包括SYSTEM_ALERT,FLAG_LAYOUT_IN_SCREEN等。我不会睡觉,直到我能弄清楚为止! 编辑11/30/12 :我发现这从@deviant: https ://stackoverflow.com/a/9195733/1851478这基本上是我在做什么,但是问题仍然存在于某些设备不自动调整system_overlay。 也许我应该提出一个错误。 更多信息:如果我强制重绘(甚至只是加载覆盖应用程序),而在视图树顶部有一个全屏幕的应用程序,我的覆盖仍然不会绘制状态栏通常占用的空间(即使在绘制的时候状态栏是不可见的),所以看起来好像叠加层并不是在全屏幕的最前面的窗口之上“叠加”(我已经创build并testing了许多全屏应用程序各种各样的方法,使他们全屏幕)。 在这些设备上,只有使用标志FLAG_LAYOUT_IN_SCREEN才能使覆盖图绘制状态栏(即使状态栏不在视图中),但布局的大小始终不变,始终为全屏,从而回到原来的问题,为什么这在一些设备上,而不是其他人。 编辑12年12月12日 :所以我没有任何进一步的运气,对此,我曾尝试使用getLocalVisibleRect的意见,但不幸的是,因为我的应用程序不拥有SystemUI的意见,它不能检测到下面的重叠。 我想用自定义ROM我可以做到这一点,但我需要一个没有根的解决scheme。 我确实看到市场上的其他应用程序在检测上面列出的非工作电话上的状态栏时遇到同样的问题。 例如:酷工具,欧米茄状态栏和状态栏+。 赏金提出。 编辑12/19/12添加的图片。 请注意,在工作设备的灰色地带也“覆盖”黑色区域(任何应用程序,当前全屏),黑色区域实际上覆盖整个屏幕,我只是显示灰色地带作为我的覆盖,即使它也全屏(减去或加上状态栏的高度,取决于工作/非工作设备以及是否在视图中)。

在Android布局xml文件中,“?android:”和“@android:”有什么区别?

在Android布局xml文件中,“?android:”和“@android:”有什么区别? 他们似乎是重用android SDK资源的可互换方式。 我发现的唯一区别是以下例子。 这里TextView的右边缘与ImageButton的左边缘alignment <RelativeLayout android:id="@id/header" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#888888"> <TextView android:id="@android:id/text1" android:layout_alignParentLeft="true" android:text="blah blah" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_toLeftOf="@android:id/button1" /> <ImageButton android:id="@android:id/button1" android:layout_alignParentRight="true" style="@style/PlusButton" /> </RelativeLayout> 但是,在这里,TextView的右边缘与RelativeLayout的右边缘alignment。 TextView重叠ImageButton。 <RelativeLayout android:id="@id/header" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#888888"> <TextView android:id="@android:id/text1" android:layout_alignParentLeft="true" android:text="blah blah" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_toLeftOf="?android:id/button1" /> <ImageButton android:id="?android:id/button1" android:layout_alignParentRight="true" style="@style/PlusButton" /> </RelativeLayout> 这两个布局的唯一区别是使用@android vs?android。 都编译没有错误。 非常感谢。

布局文件命名约定?

什么是人们提出的一些布局文件命名约定。 我没有在网上find任何东西,但想到使用以下约定。 大家怎么想? – activity_* – dialog_* – list_item_* 这就是我迄今为止所做的一切。 另外,对于它的布局命名的活动呢? 例如: -> res -> layout -> activity_about_us.xml -> src -> activity -> AboutUs.java

Android NumberPicker:从XML中设置min,max,default

有没有办法从XML布局设置NumberPicker的最小值,最大值和默认值? 我从活动代码中完成: np = (NumberPicker) findViewById(R.id.np); np.setMaxValue(120); np.setMinValue(0); np.setValue(30); XML显然更合适,因为它定义了属性而不是行为。 有没有办法使用XML布局设置这些?

默认皮肤LibGDX?

我一直在遵循这个: https : //code.google.com/p/table-layout/#Quickstart来获取LibGDX表格的一些介绍。 我已经尝试了一下button。 现在我有这个代码: Label introLabel = new Label("Skip Intro", skin); TextField introText = new TextField("", skin); table.add(introLabel); table.add(introText).width(100); table.row(); 但它引发了一个NullPointerException因为: No com.badlogic.gdx.scenes.scene2d.ui.Label$LabelStyle registered with name: default 我只是把我的button(从屏幕上的其他地方)添加到皮肤: atlas = new TextureAtlas("assets/gui/buttons/alpha_generic_buttons.pack"); skin = new Skin(); skin.addRegions(atlas); 现在我的问题是桌子需要什么样的纹理,最重要的是我如何在桌子上使用它们。