我有一个标准的导航抽屉。这是一个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
以查看它是否有效,但没有出现差异。