我认为我对很多人都有相反的问题。我见过很多人发帖,他们希望在列表视图中突出显示项目。我不想要那个。我有一个简单的(ish)应用程序,它显示了一个列表视图,并在手机启动时立即运行(这是根据客户的规格)。
问题是列表视图中的第一项在启动时突出显示。一旦用户触摸屏幕上的任何地方,我们进入触摸模式并且突出显示消失,但客户端对初始突出显示感到不安。从我使用键盘阅读的内容将使您处于非触摸模式,使用触摸屏将使您进入触摸模式....但我使用的目标设备(三星Galaxy Ace)没有键盘,但仍然不知何故出现在“键盘模式”(我的模拟器也是如此,但至少模拟器有一个键盘,所以有点意义)
有没有告诉“仅触摸屏”设备以触摸模式启动?或者,如果没有这个,一些简单的黑客可以阻止我的列表视图中的项目突出显示?
由于
答案 0 :(得分:2)
您可以尝试将零像素视图(抓取初始焦点)添加到您的布局(列表视图上方),例如
<LinearLayout
android:id="@+id/dummy_focus"
android:focusable="true"
android:focusableInTouchMode="true"
android:layout_width="0px"
android:layout_height="0px" />
答案 1 :(得分:0)
你不能在listview适配器中为isEnabled返回false吗?
boolean enabled = false;
@Override
public boolean isEnabled(int position) {
return enabled;
}
如果您需要列表项可供选择,您可以随时运行&amp;处理程序将enabled更改为true,然后执行notifyDatasetChanged
N.B。这是一个真正的黑客,我的列表视图都没有突出显示第一行。也许你的布局中有一些时髦的东西?
答案 2 :(得分:0)
您可以选择setFocusableInTouchMode(false)或正在选择的事物的等效属性。