当我单击导航抽屉中的项目时,它似乎显示了吐司消息,但它不起作用。我检查了另一个功能是否显示了吐司,但只有导航抽屉没有响应。请帮助找出为什么它不起作用。为什么不显示吐司消息。
class MainActivity : AppCompatActivity(){
lateinit var toolbar: Toolbar
lateinit var drawerLayout: DrawerLayout
lateinit var navView: NavigationView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
toolbar = findViewById(R.id.toolbar)
setSupportActionBar(toolbar)
supportActionBar!!.setDisplayShowHomeEnabled(false)
supportActionBar!!.setDisplayHomeAsUpEnabled(false)
drawerLayout = findViewById(R.id.drawer_layout)
navView = findViewById(R.id.nav_view)
val toggle = ActionBarDrawerToggle(
this, drawerLayout, toolbar, 0, 0
)
drawerLayout.addDrawerListener(toggle)
navView.setNavigationItemSelectedListener(object :
NavigationView.OnNavigationItemSelectedListener{
override fun onNavigationItemSelected(item: MenuItem): Boolean {
when (item.itemId) {
R.id.nav1 -> {
toast("Update")
}
R.id.nav2 -> {
toast("Update")
}
R.id.nav3 -> {
toast("Update")
}
R.id.nav4 -> {
toast("Update")
}
R.id.nav5 -> {
toast("Update")
}
R.id.nav6 -> {
toast("Update")
}
R.id.nav7 -> {
toast("Update")
}
R.id.nav8 -> {
toast("Update")
}
R.id.nav9 -> {
toast("Update")
}
}
return true
}
})
bottomNavigationView.setOnNavigationItemSelectedListener { item: MenuItem ->
return@setOnNavigationItemSelectedListener when (item.itemId) {
R.id.main -> {
replaceFragment(GlavnayaFragment())
toast("Главная")
true
}
R.id.izbraniye -> {
replaceFragment(IzbraniyeFragment())
true
}
R.id.tickets -> {
replaceFragment(TicketsFragment())
true
}
R.id.cabinet -> {
replaceFragment(KabinetFragment())
true
}
R.id.basket -> {
replaceFragment(KarzinkiFragment())
true
}
else -> false
}
}
replaceFragment(GlavnayaFragment())
}
private fun replaceFragment(fragment: Fragment){
val fragmentTransaction = supportFragmentManager.beginTransaction()
fragmentTransaction.replace(R.id.drawer_layout,fragment)
fragmentTransaction.commit()
}
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
menuInflater.inflate(R.menu.right_side_menu,menu)
return true
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {
if(item!!.itemId == R.id.btnMyMenu){
if(drawerLayout.isDrawerOpen(Gravity.RIGHT)){
drawerLayout.closeDrawer(Gravity.RIGHT)
}
else{
drawerLayout.openDrawer(Gravity.RIGHT)
}
}
return super.onOptionsItemSelected(item)
}}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<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:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:openDrawer="end">
<include
layout="@layout/content_main"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<com.google.android.material.navigation.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="end"
android:fitsSystemWindows="true"
app:headerLayout="@layout/nav_header"
app:menu="@menu/nav_menu"/>
</androidx.drawerlayout.widget.DrawerLayout>
nav_menu.xml
<?xml version="1.0" encoding="utf-8"?>
<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:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:openDrawer="end">
<include
layout="@layout/content_main"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<com.google.android.material.navigation.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="end"
android:fitsSystemWindows="true"
app:headerLayout="@layout/nav_header"
app:menu="@menu/nav_menu"/>
</androidx.drawerlayout.widget.DrawerLayout>
添加
navView.setNavigationItemSelectedListener(this)