ListView上的requestFocusFromTouch()的setSelection()行为类似于ListView项目上的Long Touch

时间:2017-07-14 17:36:49

标签: android listview

我有一个ListView,当用户选择它们时,它们的项目会突出显示。但是,在片段的开头,此ListView存在,没有任何项目突出显示,因为用户尚未选择任何项目。

我尝试以编程方式选择ListView中的第一项(默认项),因为用户尚未选择该项。

我在StackOverflow中遇到的解决方案(那种工作)是,

listView.clearFocus();
listView.requestFocusFromTouch();
listView.setSelection(defaultPosition);

我的ListView的xml看起来像:

<ListView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:divider="@null"
    android:dividerHeight="0dp"
    android:choiceMode="singleChoice"/>

和ListView项目可绘制的背景可用于状态更改:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/blue_linear_layout" android:color="@color/white" android:state_selected="true"/>
    <item android:drawable="@drawable/blue_linear_layout" android:color="@color/white" android:state_activated="true"/>
    <item android:drawable="@drawable/gray_linear_layout" />
</selector>

问题

  

以上代码 突出显示ListView中的指定项目,   然而,它表现得好像用户手指向下   ListView项目(我可以告诉,因为无论什么时候选择项目都可以   单击时添加到项目的细微背景仍然存在   整个程序选择时),一触摸即可   设备的屏幕随处可见,不再选择所选项目   (高亮)。我只想将项目设置为常规项目   用手敲击。

提前致谢。

更新

找到替代解决方案。我只需通过this以编程方式点击ListView中的第一项。

0 个答案:

没有答案