android - 导航 View 菜单项不响应任何单击

标签 android kotlin navigation-drawer menuitem navigationview

我想知道我的代码出了什么问题,因为我对菜单项的点击没有任何响应

class Main : AppCompatActivity() , NavigationView.OnNavigationItemSelectedListener {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)


        setSupportActionBar(mainToolbar)

        supportActionBar?.title = ""
        val toolbarToggle = ActionBarDrawerToggle(this,DrawerLayout,mainToolbar,R.string.drawer_open,R.string.drawer_close)
        DrawerLayout.addDrawerListener(toolbarToggle)
        toolbarToggle.syncState()

        mainNavigView.setNavigationItemSelectedListener(this)

    }

    override fun onNavigationItemSelected(item: MenuItem): Boolean {
        var titleT = item.title
        Toast.makeText(this,titleT, Toast.LENGTH_LONG).show()
        return true
    }

}

这是用于导航和抽屉的xml代码

<androidx.drawerlayout.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/DrawerLayout"
    android:background="@color/spark_bg"
    tools:context=".Main">

    <com.google.android.material.navigation.NavigationView
        android:id="@+id/mainNavigView"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        app:headerLayout="@layout/navigationheader"
        app:menu="@menu/navigationmenu"
         />

这是菜单项代码,其中包含我要按的项的ID
<menu xmlns:android="http://schemas.android.com/apk/res/android">
            <item
                android:id="@+id/myOrdersMI"
                android:icon="@drawable/ic_list"
                android:title="My Orders"
                />

</menu>

最佳答案

要使用DrawerLayout,请将您的主要内容 View 定位为第一个 child ,其宽度和高度为match_parent而没有<layout_gravity>

    <androidx.drawerlayout.widget.DrawerLayout
       ...>

        <!-- main content goes here -->

        <!-- NavigationView -->
        <com.google.android.material.navigation.NavigationView
            android:layout_gravity="start|left"
            ../>

    </androidx.drawerlayout.widget.DrawerLayout>

关于android - 导航 View 菜单项不响应任何单击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62436886/

相关文章:

android - Dailymotion SDK 自动播放无法正常工作,并且无法停止视频

android - 415 XML Post Rest API 不支持的媒体类型

android - 我的布局文件没有显示在 setContent(R.layout.xml 文件)..?

react-native - 如何在 React Native v.5(而非 v.4)中嵌套多个导航器

android - android 导航栏中的下拉菜单

java.lang.NoSuchMethodError : No interface method onTransitionToIdle()V 错误

android - 如果蓝牙在 Android 应用程序中关闭,则通知

android - 将 kotlin 协程与 room 一起使用

kotlin - 首次运行时未定义的迭代器值

android - public open fun navigateUp() 的争论太多