问题描述
我是 android 和 Kotlin 的新手,使用 onitemselectedListener 开发底部导航栏,因为 setonNavigationItemSelectedListener 已被弃用,我找不到任何解释如何将 onitemselectedlistener 用于导航栏的 youtube 教程。导航显示在模拟器上,但是当我点击导航图标时没有显示片段。这是我的代码。
添加 activity_main 和 emulator error image 的图像
fragmentWord image,that is connected to the first icon of "A" but doesn't show up
主活动
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
解决方法
在底部导航中选择项目后,您需要使用 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 的更多信息,请refer到官方文档。