我似乎有一个列表视图的UI问题.我有一个列表视图并选择列表中的任何项目,突出显示整个列表视图.选择工作正常,我在监听器中得到正确的项目.
但问题是,当我选择任何项目时,整个列表视图会突出显示,因此很难分辨哪一行被选中.
这在Android> 3.1上工作正常 - 目前我在2.3设备上测试.
<ListView
android:id="@+id/myList"
android:layout_width="match_parent"
android:layout_height="300dp"
android:layout_marginTop="@dimen/margin_medium"
android:background="@drawable/border"
android:listSelector="#99000000"
android:scrollbarFadeDuration="1000000"
android:scrollbars="vertical" >
</ListView>
Run Code Online (Sandbox Code Playgroud)
why*_*eee 26
我最近有同样的问题,但原因是Android <3.0错误:如果你将@color设置为列表项按下选择器的drawable,那么它将填充整个列表区域.解决方案是使用'shape'drawable而不是@color.
因此,在res/drawable具有类似内容的文件夹中创建一个新的XML文件:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/my_list_item_pressed_color" />
</shape>
Run Code Online (Sandbox Code Playgroud)
并且引用在您的ListView选择器中创建了drawable state_pressed(也在文件res/drawable夹中创建为XML文件):
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_pressed="true" android:drawable="@drawable/list_item_pressed_bg" />
<item android:drawable="@android:color/transparent" />
</selector>
Run Code Online (Sandbox Code Playgroud)
并在您的ListView:中使用此选择器:
<ListView
.....
android:listSelector="@drawable/list_item_selector" />
Run Code Online (Sandbox Code Playgroud)
就这样.至少适用于Android 2.2-2.3.
| 归档时间: |
|
| 查看次数: |
1834 次 |
| 最近记录: |