将自定义ImageView图标添加到导航抽屉会中断单击事件

时间:2015-06-20 20:58:46

标签: android navigation-drawer

我有一个标准的导航抽屉。这是一个ListView

        <ListView android:id="@+id/fragmentLeftDrawer"
            android:layout_width="304dp"
            android:layout_height="match_parent"
            android:layout_gravity="start"
            android:choiceMode="singleChoice"
            android:divider="@android:color/transparent"
            android:textStyle="bold"
            android:dividerHeight="0dp"/>

drawer_list_item.xml填充:

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:minHeight="?android:attr/listPreferredItemHeightSmall"
    android:padding="10dp">

    <ImageView
        android:id="@+id/navDrawerImageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_centerVertical="true"
        android:paddingStart="16dp"
        android:paddingEnd="16dp"/>

    <TextView
        android:id="@+id/navDrawerTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_toEndOf="@+id/navDrawerImageView"
        android:paddingStart="16dp"
        android:paddingEnd="16dp"/>

</RelativeLayout>

这很好用。现在,我想用this Github project之类的内容替换ImageView。它本质上是一个扩展ImageView的自定义类。 (我的课程与链接的项目非常相似,所以出于这个问题的目的,假设它们是相同的。)

如果我用这样的内容替换ImageView中的drawer_list_item.xml

<package.appname.CustomClass
    android:id="@+id/navDrawerCustomImageView"
    android:layout_width="48dp"
    android:layout_height="48dp"
    android:layout_alignParentStart="true"
    android:layout_alignParentTop="true"
    android:layout_centerVertical="true"
    android:paddingStart="16dp"
    android:paddingEnd="16dp"/>

然后,导航抽屉不会响应点击事件。它只会打开和关闭但不会导航到应用程序的不同部分。不会发生错误或崩溃。

有谁知道为什么会这样?请告诉我。任何建议都表示赞赏。

编辑:我应该提一下,我也尝试在我的自定义android:clickable上切换ImageView以查看它是否有效,但没有出现差异。

1 个答案:

答案 0 :(得分:0)

好的,我似乎明白了。 您自己setClickable(true)内的自定义视图调用 去掉它。

最短的解释here