TextView阻止ListView onItemClickListener

时间:2013-05-31 11:04:10

标签: android-listview

我有简单的列表视图,列表项由以下布局定义:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/list_item_selector" >

    <TextView
        android:id="@+id/menuItemTextView"
        android:clickable="false"
        android:focusable="false"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:background="#00000000"
        android:padding="20dp"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textColor="@color/blue"
        android:textIsSelectable="true" />

    <ImageView
        android:id="@+id/arrow"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:paddingRight="10dp"
        android:src="@drawable/arrow" />

> </RelativeLayout>

点击TextView后,listView.onItemClickListener未被调用。 Android 4上出现问题.Android 2.x没问题。是否有任何技巧可以将事件从TextView传递到ListView而不在TextView上定义onClickListner

3 个答案:

答案 0 :(得分:0)

在您的主要活动中,只需将listview视为可聚焦的真实。这对我有用。如果您使用的是自定义列表视图,焦点将传递给其子节点,而不是列表,以便将焦点重新放回listview使用 listView.focusable(真); 而textview的其他内容只是将焦点设置为假。

答案 1 :(得分:0)

这是android:textIsSelectable =“true”属性。不要盲目跟随lint提示。

答案 2 :(得分:0)

android:inputType="textMultiLine"也可能导致此问题。如果您已在TextView xml中包含该属性,请尝试将其删除。