Android 如何将NavHostFragment与FragmentContainerView一起使用?
我对导航组件的一个问题很好奇,特别是关于托管Android 如何将NavHostFragment与FragmentContainerView一起使用?,android,android-fragments,android-activity,android-architecture-navigation,android-viewbinding,Android,Android Fragments,Android Activity,Android Architecture Navigation,Android Viewbinding,我对导航组件的一个问题很好奇,特别是关于托管NavHostFragment。我有一个带有一些片段的单一活动本机应用程序。我在启动器的xml中,将替换为 最初的实施已按计划进行了一年。在本周推出FragmentContainerView时,起始目的地的屏幕在启动时不会呈现。然而,我观察到的日志证明,数据成功地从网络和缓存中传入。从该状态开始,只有通过旋转设备触发配置更改才能按预期呈现UI 我的AndroidX NavigationFragmentKtx和NavigationUiKtx依赖项是版本2
NavHostFragment
。我有一个带有一些片段的单一活动本机应用程序。我在启动器的xml中,将
替换为
最初的实施已按计划进行了一年。在本周推出FragmentContainerView时,起始目的地的屏幕在启动时不会呈现。然而,我观察到的日志证明,数据成功地从网络和缓存中传入。从该状态开始,只有通过旋转设备触发配置更改才能按预期呈现UI
我的AndroidX NavigationFragmentKtx和NavigationUiKtx依赖项是版本2.3.2
。相关文件缩写。有什么我错过的突出的地方吗?任何想法都很感激
launcher\u activity.xml
启动活动.kt
类启动器活动:AppCompatActivity(R.layout.launcher\u活动){
私有lateinit var viewBinding:LauncherActivityBinding
专用val navController:navController by lazy{
val navHost=supportFragmentManager.findFragmentById(
R.id.launcher\u导航主机
)作为一个碎片
navHost.navController
}
重写创建时的乐趣(savedInstanceState:Bundle?){
super.onCreate(savedInstanceState)
viewBinding=LauncherActivityBinding.充气(LAYOUTINTFLATER)
setContentView(viewBinding.root)
}
}
您正在使用AppCompatActivity(R.layout.launcher\u活动)
,这意味着您将自动调用setContentView(R.layout.launcher\u活动)
作为super.onCreate(savedInstanceState)
的一部分(传递布局ID就是这样做的)。然后通过第二次调用setContentView()
覆盖该布局
如果您使用的是视图绑定,则只需删除R.layout.launcher\u活动
部分,因为它不是必需的(以及问题的根源):
class LauncherActivity : AppCompatActivity() {