【问题标题】:Android listview no longer highlights selection onclickAndroid listview 不再突出显示单击时的选择
【发布时间】:2011-10-28 11:30:47
【问题描述】:

我有一个列表视图,当我触摸它们时,它在项目上显示为黄色。我所做的不同之处是更改该 listview xml 中的背景图像,现在它不再向我显示黄色

这里是代码

列表视图xml,它只是一个带有背景图像的文本视图:

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_height="wrap_content"
    android:padding="10dp"
    android:textSize="24sp"
    android:textColor="#000000"
    android:background="@drawable/bglistitem"
    android:gravity="center_vertical|center_horizontal">
</TextView>

另一个布局中调用它的地方

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_height="wrap_content"
    android:padding="10dp"
    android:textSize="24sp"
    android:textColor="#000000"
    android:background="@drawable/bglistitem"
    android:gravity="center_vertical|center_horizontal">
</TextView>

这里是代码:

lv.setOnItemClickListener(new OnItemClickListener() {
    public void onItemClick(AdapterView<?> arg0, View arg1,int arg2, long arg3) {}
});

正如你在上面看到的,我从来没有做任何会改变选择突出显示的默认行为的事情,为什么现在会有所不同,也许你看到了我没有看到的东西?

【问题讨论】:

    标签: java android listview selection highlighting


    【解决方案1】:

    当您向 ListView 添加新背景时,您会覆盖最有可能使用选择器根据状态为 ListItem 着色的 androids 默认背景。

    尝试使用自定义选择器

    创建一个 XML 文件 mycustombackground.xml,并将其添加到其中:

    <?xml version="1.0" encoding="utf-8"?>
     <selector xmlns:android="http://schemas.android.com/apk/res/android">
       <item android:state_pressed="true"
          android:drawable="@drawable/item_pressed" /> 
       <item android:state_focused="true"
          android:drawable="@drawable/item_focused" /> 
       <item android:drawable="@drawable/item_normal" /> 
     </selector>
    

    将@drawables 替换为与状态相关的您自己的。 然后将listview的背景设置为xml文件。

    android:background="@drawable/mycustombackground" 
    

    您可能想查看 XML 以创建黄色,或者只是创建自己的图像。

    【讨论】:

    • 我想通了,感谢您的洞察力,帮助我缩小了可能性。事实证明,如果图像中有任何 alpha,那么黄色突出显示就会发生。如果您有不透明的图像,则它不会突出显示
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-17
    • 2012-03-06
    • 2015-03-11
    • 1970-01-01
    • 1970-01-01
    • 2018-12-30
    • 2016-02-13
    相关资源
    最近更新 更多