我當前的 Android 應用程式使用資料系結。
嘗試將片段添加到androidx.fragment.app.FragmentContainerView.
我設法得到了我想要的效果,但是感覺不是正確的方法。
我不明白我在哪里犯了錯誤。
在我的活動onCreate方法中,我執行此代碼來設定所需的片段
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = DataBindingUtil.setContentView(this, R.layout.activity_main)
if (savedInstanceState == null) manageFragment()
}
其中,manageFragment()功能類似于此
private fun manageFragment() {
val myFragment = MyFragment.instance()
when {
(currentFragment == null) -> supportFragmentManager
.beginTransaction()
.replace(R.id.my_fragment_container, myFragment)
.commit()
(currentFragment is MyFragment) -> doNothing()
else -> supportFragmentManager
.beginTransaction()
.replace(R.id.my_fragment_container, myFragment)
.commit()
}
}
當我檢查manageFragment()此方法回傳 null 后onCreate()
supportFragmentManager.findFragmentById(R.id.my_fragment_container)
但是,當我呼叫相同的方法時 onPostCreate()
override fun onPostCreate(savedInstanceState: Bundle?) {
super.onPostCreate(savedInstanceState)
currentFragment = supportFragmentManager.findFragmentById(R.id.my_fragment_container)
}
它有我的片段集
這是我應該如何在使用資料系結時添加/重新[放置片段?
為什么我的片段直到 postCreate()
香港專業教育學院一種感覺,它的,因為一旦我提交的片段交易到我的片段添加到FragmentContainerView,布局仍需要測量等,讓“一段時間”過去之前findFragmentById()可以回到我加入片段。
是否有我可以添加的布局偵聽器FragmentContainerView來檢測我的片段何時實際添加并變為可見?
uj5u.com熱心網友回復:
為什么我的片段直到 postCreate() 才回傳
提交是異步的
是否有我可以添加到 FragmentContainerView 的布局偵聽器來檢測我的片段何時實際添加并變為可見?
你為什么關心這個?
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/371981.html
標籤:安卓 android-fragments android-数据绑定
上一篇:從RecyclerViewAdapter中的Fragment呼叫方法-Lateinit屬性textView尚未初始化
