我有一个带有listview的小型Android APP。有时列表视图不会对我的输入作出反应。我可以看到我触及了一个项目(当我触摸它时它会改变颜色),但程序什么都不做。 这是我的XML文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:focusable="false"
android:focusableInTouchMode="false" >
<TextView
android:id="@+id/textViewRowLable"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:textSize="50sp" />
<TextView
android:id="@+id/textViewTime"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_toRightOf="@id/textViewRowLable"
android:gravity="right"
android:textSize="25sp" />
<TextView
android:id="@+id/textViewRemainingTime"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_below="@id/textViewTime"
android:layout_toRightOf="@id/textViewRowLable"
android:gravity="right"
android:textSize="25sp" />
</RelativeLayout>
这是列表:
.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Toast.makeText(getApplicationContext(), "click", Toast.LENGTH_LONG).show();
}
});
有人可以给我一个暗示,为什么它并不总是有效?
谢谢
答案 0 :(得分:0)
尝试在android:descendantFocusability="blocksDescendants"
上使用RelativeLayout
另请阅读本教程:
Listview tips and tricks
答案 1 :(得分:0)
我有类似的问题。比我查看Android源代码并找到原因。
在点击处理中,有以下一行
if (mDataChanged) return;
因此,当内部列表数据发生变化时,将忽略点击。
我经常更新列表。减少更新间隔几乎解决了问题(在更改之后,100次点击中只有1次未被识别)