Geo*_*org 5 user-interface android listview
我无法弄清楚我做错了什么......
我有一个带有自定义layout.xml文件的ListView.在那里,我定义像这样的TextView
<TextView android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="foo"
android:textColor="@drawable/listitem_textcolor_selector"/>
Run Code Online (Sandbox Code Playgroud)
listitem_textcolor_selector.xml看起来像这样:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:color="#ff0000" />
<item android:state_selected="true" android:color="#ff0000" />
<item android:state_focused="true" android:color="#ff0000" />
<item android:color="#000000" />
</selector>
Run Code Online (Sandbox Code Playgroud)
这种作品.如果我选择一行,它会正确地将文本的颜色更改为红色.唯一的问题是,它不会保持红色.大约一秒钟后,该颜色将变回黑色.
这里的主要问题是行的背景将改变它的颜色,这种颜色将保留,但文本的颜色不会,即使列表项本身的选择器看起来相同(期望颜色).
谁能告诉我我失踪了什么?任何帮助表示赞赏,因为我不知道如何解决这个问题:)
谢谢
编辑: 也许我还应该指出我正在测试三星Galaxy Tab 10.1平板电脑.我曾经听过一些关于"TouchMode"的事情而不知道天气这会与我的问题有关...
在listitem_textcolor_selector.xml中添加以下状态:
<!-- Activated -->
<item
android:state_activated="true"
android:color="#ff0000" />
<!-- Active -->
<item
android:state_active="true"
android:color="#ff0000" />
Run Code Online (Sandbox Code Playgroud)
在此之后,所选项目将保持其颜色状态,直到选择其他内容.
希望这有帮助.