我有一个用Kotlin编写的简单应用程序,它有一个BottomNavigationView。我们的想法是让一个活动(MainActivity)带有要为BottomNavigationView上的每个选项卡加载的片段。
我已经创建了一个我想要在选择选项卡时加载的片段(HomeFragment),并且当活动选项卡发生更改时,我已经在BottomNavigationView上的图标下更改了文本。
现在我想在更改标签时膨胀/加载片段。我该怎么做呢?
MainActivity.kt:
class MainActivity : AppCompatActivity() {
private val mOnNavigationItemSelectedListener = BottomNavigationView.OnNavigationItemSelectedListener { item ->
when (item.itemId) {
R.id.navigation_enrollments -> {
message.setText(R.string.title_enrollments)
return@OnNavigationItemSelectedListener true
}
R.id.navigation_timeline -> {
message.setText(R.string.title_timeline)
return@OnNavigationItemSelectedListener true
}
R.id.navigation_home -> {
message.setText(R.string.title_home)
return@OnNavigationItemSelectedListener true
}
R.id.navigation_alerts -> {
message.setText(R.string.title_alerts)
return@OnNavigationItemSelectedListener true
}
R.id.navigation_profile -> {
message.setText(R.string.title_profile)
return@OnNavigationItemSelectedListener true
}
}
false
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener)
}
override fun onResume() {
super.onResume()
setContentView(R.layout.activity_main)
val bottomNavigationView = findViewById<BottomNavigationView>(R.id.navigation)
bottomNavigationView.selectedItemId = R.id.navigation_home
}
}
答案 0 :(得分:0)
而不是docker run -v d:/data:/data alpine ls /data
做
message.setText(R.string.title_enrollments)
或者您可以使用我在代码中使用的扩展功能来使其更清晰。只需将其添加到某个supportFragmentManager.beginTransaction()
.replace(containerViewId, fragmentInstance, "TAG")
.commitAllowingStateLoss()
文件
.kt
现在您可以通过以下方式添加删除片段:
inline fun FragmentManager.transactStateless(func: FragmentTransaction.() -> Unit) {
val transaction = beginTransaction()
transaction.func()
transaction.commitAllowingStateLoss()
}