【问题标题】:ListView item ColorFilter on Press按下时的 ListView 项目 ColorFilter
【发布时间】:2014-07-12 04:49:48
【问题描述】:

我一直在做一个项目,其中一部分包含一个列表视图。单击列表视图中的项目时,它会链接到另一个活动。但是当我点击它时,没有立即反应。例如,在我的一个活动中,我有一个按钮,我正在使用setOnTouchListener,这样当按钮被按下时,它有一个颜色过滤器,一个它被释放,过滤器消失,下一个活动打开。我想对列表视图项产生类似的效果。

我尝试在 listView 上使用onTouchListener 来执行相同的任务,但它不起作用。我正在使用setSelected(bool) 以使用xml 文件中的android:state_selected 属性更改列表视图的背景。 (请参阅此处了解我是如何做到的Android ListView selected item stay highlighted)。

但这不起作用,因为onTouchListener 中的视图与我需要的视图(特定列表视图项)不同。那么有没有办法在按下时突出显示列表视图中的项目?

【问题讨论】:

  • 首先最好使用选择器来更改选定状态和默认状态下的颜色而不是onToachListener,对于您的问题,您需要编写自定义适配器并将选择器背景设置为列表项

标签: android listview


【解决方案1】:

你必须为此制作选择器。喜欢,

list_item_selector.xml  
------------------------
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="false"
      android:state_pressed="false" 
      color android:color="#FF0000"/>
<item android:state_pressed="true">
 <color android:color="#AA736F6E" />
 </item>
<item android:state_selected="true"
      android:state_pressed="false">
    <color  android:color="#00000000"/>

您必须在列表视图中设置此选择器以及列表项的布局。像这样,

<ListView
    android:id="@+id/mylist"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:cacheColorHint="#AA736F6E"
    android:clickable="true"
    android:background="@drawable/list_item_selector"
    android:divider="#737CA1"
    android:dividerHeight="0.5dp"
    android:choiceMode="singleChoice">
</ListView>

并在列表项中设置

跳它是工作

【讨论】:

  • 谢谢,很抱歉延迟检查,但确实有效
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-15
  • 1970-01-01
  • 2012-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多