好的,我有ListView
项目的布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/draweritemtext"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?android:attr/activatedBackgroundIndicator"
android:fontFamily="sans-serif-thin"
android:gravity="center_vertical"
android:minHeight="?android:attr/listPreferredItemHeightSmall"
android:paddingBottom="16dp"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:paddingTop="16dp"
android:textAppearance="?android:attr/textAppearanceListItemSmall"
android:textColor="#111"
android:textSize="20sp" />
<View
android:id="@+id/separator"
android:layout_width="fill_parent"
android:layout_height="0.2dp"
android:background="@android:color/darker_gray"
android:visibility="visible" />
</LinearLayout>
所以这一切都可以正常工作。它显示如下:
ITEM
-------
ITEM
-------
ITEM
-------
但我不想要android中的蓝色选择颜色,所以我想通过将textviews背景更改为@drawable/drawer_active_selector
来更改它。
这是我的选择器:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_activated="true" android:drawable="@drawable/notquiteverylightgray" />
<item android:drawable="@drawable/white" />
</selector>
我的绘画
<?xml version="1.0" encoding="utf-8"?>
<resources>
<drawable name="semitransparent_white">#77ffffff</drawable>
<drawable name="verylightgray">#eee</drawable>
<drawable name="notquiteverylightgray">#ddd</drawable>
<drawable name="white">#fff</drawable>
</resources>
现在看起来像这样:
ITEM
ITEM
ITEM
------
填充是正确的,但我想念的是分隔符(<View />
)
我怎样才能让他们回来?
答案 0 :(得分:1)
您的解决方案中存在一些错误。默认情况下,ListView
的项目点击次数由ListView
本身处理,而不是由点击的子视图处理。因此,不应将TextView
的背景更改为@drawable/drawer_active_selector
,而应使用ListView
xml属性或android:listSelector
方法之一设置List.setSelector()
的项目选择器drawable 。另一个错误涉及分隔线。您的解决方案不必要地冗长。添加分隔符有一种更简单的方法。只需使用ListView
的{{1}}属性或android:divider
方法。