NavigationView onClick中的菜单项仅在双击时触发

时间:2019-07-09 06:09:39

标签: android android-layout kotlin android-arrayadapter navigation-drawer

我通过在use Sort::Key::Natural qw( natsort ); my @sorted = natsort @unsorted; 中添加NavigationViewListView创建菜单。然后,我进行了自定义NavigationView,在其中添加了每个菜单项。每个菜单项都有附加的自定义xml布局。 ArrayAdapter触发函数使用此布局的根作为参数传递给菜单项类。

一切正常,但是当我单击项目时,仅当我双击时它不会触发此功能。为什么会发生这种情况?

代码: 这是菜单项的类(多个不同的项正在扩展该类) 并非每个菜单项都有单击事件(例如节标题)

onClickListener

在某些菜单项的abstract class DrawerItem(var itemName: String, var imgResID: Int, var onClick: (() -> Unit)? = null) 函数内,这是onClick的调用方式:

getView

NavigationView的XML布局:

val root: LinearLayout = view.findViewById(R.id.root)
root.setOnClickListener {
     menuItem.onClick?.invoke()
}

一种菜单项类型的布局:

<com.google.android.material.navigation.NavigationView
        android:id="@+id/drawer_menu"
        android:layout_gravity="left"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true"
        android:background="@color/white">

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:orientation="vertical">

            <LinearLayout
                android:id="@+id/navigation_header_container"
                android:orientation="vertical"
                android:layout_width="match_parent"
                android:layout_height="wrap_content">

            </LinearLayout>

            <ListView
                android:id="@+id/lst_menu_items"
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight="1" />
        </LinearLayout>

    </com.google.android.material.navigation.NavigationView>

0 个答案:

没有答案