android - 用片段替换底部导航视图
问题描述
我有带有 BottomNavigationView 的 MainActivity,如下所示:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val navView: BottomNavigationView = findViewById(R.id.nav_view)
val navController = findNavController(R.id.nav_host_fragment)
navView.setupWithNavController(navController)
}
}
此外,我在导航视图顶部有一个设置按钮。单击此按钮,我希望设置片段出现在导航片段的顶部并将其隐藏并全屏显示设置。
像这样:
val settingsFragment = SettingFragment.newInstance()
val fragmentTransaction = supportFragmentManager.beginTransaction()
fragmentTransaction.addToBackStack(null)
fragmentTransaction.replace(/*what to user here*/, settings)
fragmentTransaction.commit()
解决方案
这是解决方案:
val navHostFragment
= supportFragmentManager.findFragmentById(R.id.nav_host_fragment) as NavHostFragment
navHostFragment.childFragmentManager
.beginTransaction()
.replace(navHostFragment.id, SettingsFragment())
.addToBackStack(null)
.commit()
推荐阅读
- mongodb - 只显示最近的条目而不是旧的 Mongodb
- c++ - 如何分析在 kubernetes pod 上运行的服务?
- python - pyqt Parent是QTextDocument,parent的线程是,当前线程是Thread2
- java - Spring Boot中的PageRequest未定义
- matlab - 绘制时间序列时如何调整网格密度
- python - 如何使用 tweepy 进行迭代,更正
- mongodb - 如何在 React Native 中进行功能计时器倒计时并与 MongoDB 数据库同步
- c - 当我使用“strcat”函数时,它会导致分段错误......为什么?
- python - 如何在预提交中运行 dmypy
- c# - 没有从 X 到 Y 的隐式引用转换