如何在启动时确保“触摸模式”

时间:2011-11-17 19:54:43

标签: android touch android-listview

我认为我对很多人都有相反的问题。我见过很多人发帖,他们希望在列表视图中突出显示项目。我想要那个。我有一个简单的(ish)应用程序,它显示了一个列表视图,并在手机启动时立即运行(这是根据客户的规格)。

问题是列表视图中的第一项在启动时突出显示。一旦用户触摸屏幕上的任何地方,我们进入触摸模式并且突出显示消失,但客户端对初始突出显示感到不安。从我使用键盘阅读的内容将使您处于非触摸模式,使用触摸屏将使您进入触摸模式....但我使用的目标设备(三星Galaxy Ace)没有键盘,但仍然不知何故出现在“键盘模式”(我的模拟器也是如此,但至少模拟器有一个键盘,所以有点意义)

有没有告诉“仅触摸屏”设备以触摸模式启动?或者,如果没有这个,一些简单的黑客可以阻止我的列表视图中的项目突出显示?

由于

3 个答案:

答案 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)或正在选择的事物的等效属性。