在使用NavHostFragment时,如果它的空状态(即没有添加任何Fragment)需要显示自定义视图,则可以通过在xml文件中定义一个带有id的FrameLayout布局,并将其作为NavHostFragment的子视图来实现。 代码示例:
在Activity的onCreate()方法或Fragment的onViewCreated()方法中,可以通过以下方式获取NavHostFragment和FrameLayout,并使用FragmentTransaction将自定义视图添加到FrameLayout中:
val navHostFragment = supportFragmentManager.findFragmentById(R.id.my_nav_host_fragment) as NavHostFragment
val frameLayout = navHostFragment.view!!.findViewById(R.id.container)
val inflater = LayoutInflater.from(this)
val emptyView = inflater.inflate(R.layout.fragment_empty, null, false)
supportFragmentManager.beginTransaction()
.replace(R.id.container, emptyView)
.commit()