我在扩展ListActivity
. 在我滚动列表之前,似乎无法“单击”列表中的项目。稍微滚动列表后,“点击”工作正常。如果列表根本不可滚动(没有足够的项目等),那么一切都会正常运行。
由于活动扩展ListActivity
,我只是覆盖onListItemClick
:
@Override
protected void onListItemClick(ListView l, View v, int position, long id)
{
Log.e(TAG, "Click fired");
}
列表中的行是由自定义 XML 定义的,在阅读了此处几乎所有的帖子后,我认为它与可聚焦元素有关,但我似乎无法让它发挥作用。从下面的 XML 列表中可以看到,所有项目都有focusable="false"
,但这没有帮助。
我也尝试了所有选项android:descentFocusability
——但没有一个能正常工作。
这个问题在 Froyo 的所有 Android 版本上都很明显 --> ICS
编辑
我已经确定如果我删除附加到同一列表的 onScroll 侦听器,这个问题就会消失。但是,我真的需要它,并且我已经将日志信息放在两者中onScroll
,onScrollStateChanged
并且没有显示任何信息(例如,滚动也没有被触发。)这是一个已知的冲突吗?
相关活动的布局 XML:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:focusable="false"
android:focusableInTouchMode="false">
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:focusable="false"
android:focusableInTouchMode="false">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Search Results: "
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_gravity="left"
android:focusable="false"
android:focusableInTouchMode="false" />
<TextView android:id="@+id/query_type"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="context sensitive"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_gravity="right"
android:textStyle="italic"
android:focusable="false"
android:focusableInTouchMode="false" />
</FrameLayout>
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:minHeight="1dip"
android:background='@color/grey'
android:focusable="false"
android:focusableInTouchMode="false" />
<ListView
android:id="@+id/android:list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:cacheColorHint="#00000000"
android:descendantFocusability="blocksDescendants" />
<TextView
android:id="@+id/prodcutdb_results_empty"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingLeft="5dip"
android:paddingTop='4dip'
android:text="No results"
android:focusable="false"
android:focusableInTouchMode="false"
android:visibility="gone"/>
</LinearLayout>
自定义列表项 XML:(在此 XML 中添加可聚焦标签LinearLayout
无效)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:orientation="horizontal"
android:paddingRight="4dip"
android:cacheColorHint="#00000000">
<TextView
android:id="@+id/list_item_label"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp"
android:paddingLeft="20dip"
android:textSize="16dp"
android:layout_weight="1"
android:clickable="false"
android:focusable="false"
android:focusableInTouchMode="false" />
<view
android:layout_width="wrap_content"
android:id="@+id/list_item_image"
android:layout_height="fill_parent"
android:src="@drawable/right"
android:maxHeight="50dp"
android:maxWidth="50dp"
android:layout_gravity="right"
android:clickable="false"
android:focusable="false"
android:focusableInTouchMode="false" />
</LinearLayout>