我目前正试图在列表视图悬停时应用选择器。当它悬停,聚焦或按下时,它需要变灰。所以我一直在堆栈上搜索一些帖子,但他们似乎都没有工作。
我的选择器:
trait DBObject
trait Dim1Agg extends DBObject
trait IDataContext[A]
abstract class IDataContextBuilder[+A <: DBObject] {
def initXDataPoints[B>:A](dataContext: IDataContext[B]): Unit
}
class Dim1DataContextBuilder extends IDataContextBuilder[Dim1Agg] {
override def initXDataPoints[B >: Dim1Agg](dataContext: IDataContext[B]): Unit = ???
}
我的列表视图:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_enabled="true"
android:state_pressed="true" android:drawable="@drawable/hover" />
<item android:state_enabled="true"
android:state_focused="true" android:drawable="@drawable/hover" />
<item android:state_enabled="true"
android:state_selected="true" android:drawable="@drawable/hover" />
<item
android:drawable="@drawable/normal" />
</selector>
我的自定义列表项视图:
<ListView
android:id="@+id/supplier_scan_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:divider="#eaeaea"
android:dividerHeight="0.5dp"
android:drawSelectorOnTop="true"
android:fastScrollEnabled="false"
android:footerDividersEnabled="false"
android:listSelector="@drawable/listselector"
android:overScrollFooter="@android:color/transparent">
有谁知道我在这里做错了什么?
答案 0 :(得分:0)
将这些行添加到列表视图中:
android:focusable="true"
android:focusableInTouchMode="true"
android:descendantFocusability="blocksDescendants"
selector.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/normal" android:state_activated="false"/>
<item android:drawable="@drawable/hover" android:state_pressed="true"/>
<item android:drawable="@drawable/hover" android:state_activated="true"/>
</selector>
答案 1 :(得分:0)
解决方案:
此listview使用自定义适配器(BaseAdapter)。在这个适配器中,我使rootview成为onClick,但这取消了我的listSelector。所以我把它改成了ListView上的onItemClick,并提供了一个额外的方法来返回我的Adapter所需的信息。通过这样做,listSelector再次工作。