android studio - 为什么 TextView 丢失了?

问题描述 投票:0回答:1

我有一个 FrameLayout 并使用底部导航视图,有 3 个片段的切换。单击该按钮时,将在主片段中创建 TextView。问题是,当从主片段切换到第二个片段并返回主片段时,创建的 TextView 消失了。可以怎样解决呢。也就是说,我需要 TextView 留在片段上

这是替换fragment的代码,它位于MainActivity中

fm = supportFragmentManager

        binding.bottomNavigationView.setOnNavigationItemSelectedListener {
            when(it.itemId){
                R.id.roomsFragment -> {}
                R.id.homeFragment -> {
                    fm.commit {
                        replace<HomeFragment>(R.id.framLayout)}
                }
                R.id.settingsFragment -> {
                    fm.beginTransaction().replace(R.id.framLayout, SettingsFragment.newInstance()).commit()
                }
            }
            true
        }

使用 MainActivity 进行替换,并且附加片段没有代码它是主片段

android kotlin mobile
1个回答
0
投票

查看了一些代码后,我发现您创建了一个

menu
文件,一个
navigation
文件。 您基本上需要的是
navController

val navController = findNavController(R.id.mainContainer)
val bottomNavigationView = binding.bottomNavigationView
bottomNavigationView.setupWithNavController(navController)

另外,将以下行添加到

navigation host
文件中的
activity_main.xml

app:navGraph="@navigation/mobile_navigation"

完成所有设置后,您可以使用以下代码观察

navController
的更改:

navController.addOnDestinationChangedListener { controller, destination, bundle ->
  when(destination.id) {
     R.id.roomsFragment -> {}
     R.id.homeFragment -> {}
     R.id.settingsFragment -> {}
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.