我有一個帶有片段容器的活動工具列
<androidx.appcompat.widget.Toolbar
android:id="@ id/tlUsersActivity"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/white"
/>
我運行這些行來控制按下的按鈕
setSupportActionBar(binding?.tlUsersActivity)
if (supportActionBar != null) {
when (intent.getStringExtra(MainActivityAdmin.FRAGMENT_TYPE)) {
"View Users" -> {
supportActionBar?.title = viewUsersText
}
"Edit Users" -> {
supportActionBar?.title = editUsersText
}
}
supportActionBar?.setDisplayHomeAsUpEnabled(true)
binding?.tlUsersActivity?.setNavigationOnClickListener { onBackPressed() }
我想從片段內部改變這個動作,我想用一個替換片段的函式來替換它。我試過這個,但它沒有用
val actionBar = view?.findViewById<Toolbar>(R.id.tlUsersActivity)
actionBar?.setNavigationOnClickListener {
replaceFragment(FragmentEditUsers())
}
uj5u.com熱心網友回復:
直接從 Fragment 使用 Activity 不是一個好習慣,它會在未來成為一個錯誤的巢穴))第一個選項是SharedViewModel您可以在您的 Activity 和 Fragment 之間共享。但是如果你有簡單的功能并且你不想在ViewModel這里參與,也許你不想要它。第二個選項,通常在之前使用Fragment Result API并且SharedViewModel是回呼。我更喜歡的第三個,它更干凈Fragment Result API。您可以在此處找到更多資訊 - 
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/490332.html
