默认情况下,ListView改变背景颜色为橙色被按下,也是TextColor中TextView变为白色/黑色.通过在应用选择ListView,我们可以设置背景颜色为按下状态,但我们可以还定义项TextColor的TextView同一选择内的项目/布局里面?如果是这样,那怎么样?
Pau*_*sma 12
Amy88的答案解决了这个问题,但没有专门解决改变ViewGroup的孩子的属性问题.
假设您有一个可点击的按钮LinearLayout,TextView它应该在按下时改变颜色.关键是要android:duplicateParentState="true"在子视图上使用:
<LinearLayout
android:duplicateParentState="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:duplicateParentState="true"
android:text="@string/hello_world"
android:textColor="@drawable/text_selector" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
您可以在Amy88的答案中指定选择器.
如果要为ListAdapter定义自定义布局文件,请将自定义布局中TextView的文本颜色设置为xml.此布局应放在可绘制的资源文件夹中(创建一个可绘制的文件夹并将text_selector.xml放在其中).
text_selector.xml:
<item android:state_selected="true" android:color="@android:color/black"/>
<item android:state_focused="true" android:color="@android:color/black"/>
<item android:state_pressed="true" android:color="@android:color/black"/>
<item android:color="@android:color/white"/>
Run Code Online (Sandbox Code Playgroud)
要设置文本颜色,请使用:android:textColor ="@ drawable/text_selector"
上面的示例xml默认情况下将文本颜色设置为白色,并在聚焦,选择或按下列表项时将文本颜色设置为黑色.