首页 > 解决方案 > 底部导航栏的 onItemSelectedListener

问题描述

我是 android 和 Kotlin 的新手,使用 onitemselectedListener 开发底部导航栏,因为不推荐使用 setOnNavigationItemSelectedListener,而且我找不到任何解释如何将 onitemselectedlistener 用于导航栏的 youtube 教程。导航显示在模拟器上,但是当我单击导航图标时没有显示片段。这是我的代码。

添加activity_main的图像和 模拟器错误图像

fragmentWord 图像,连接到“A”的第一个图标但不显示

主要活动

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import androidx.fragment.app.Fragment
import com.aryanvedh.vocabapp2.databinding.ActivityMainBinding

class MainActivity : AppCompatActivity() {

    private lateinit var binding: ActivityMainBinding
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding = ActivityMainBinding.inflate(layoutInflater)
        setContentView(binding.root)

        val wordFragment = WordFragment()
        val memorisedFragment = MemorisedFragment()
        setCurrentFragment(wordFragment)

        binding.bottomNavigationView.setOnItemSelectedListener { item ->
            when (item.itemId) {
                R.id.words -> setCurrentFragment(wordFragment)
                R.id.memorised -> setCurrentFragment(memorisedFragment)
            }
            true
        }

    }

    private fun setCurrentFragment(fragment: Fragment) =
        supportFragmentManager.beginTransaction().apply {
            replace(R.id.flFragment, fragment)
            commit()
    }
}```


any help? thanks 

标签: androidandroid-bottomnavonitemselectedlistener

解决方案


OnNavigationItemSelectedListener在底部导航中选择项目后,您需要使用方法来捕获。

这是文档中附加的示例代码。

BottomNavigationView.OnNavigationItemSelectedListener { item ->
    when(item.itemId) {
        R.id.item1 -> {
            // Respond to navigation item 1 click
            true
        }
        R.id.item2 -> {
            // Respond to navigation item 2 click
            true
        }
        else -> false
    }
}

有关 BottomNavigationView 的更多信息,请参阅官方文档。


推荐阅读