更改TextView背景后无法看到View

时间:2013-12-30 17:45:25

标签: java android

好的,我有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 />

我怎样才能让他们回来?

1 个答案:

答案 0 :(得分:1)

您的解决方案中存在一些错误。默认情况下,ListView的项目点击次数由ListView本身处理,而不是由点击的子视图处理。因此,不应将TextView的背景更改为@drawable/drawer_active_selector,而应使用ListView xml属性或android:listSelector方法之一设置List.setSelector()的项目选择器drawable 。另一个错误涉及分隔线。您的解决方案不必要地冗长。添加分隔符有一种更简单的方法。只需使用ListView的{​​{1}}属性或android:divider方法。