我一直在開發一個小的Android應用程序,但我面臨一個我很難解決的錯誤。指定正確的android片段旋轉
由於我使用的是BottomNavigationView我必須初始化我的家庭片段是這樣的:
@Override
protected void onStart(){
super.onStart();
FragmentTransaction f = fm.beginTransaction();
f.replace(R.id.content, homeFragment).commit();
}
替換髮生在此的FrameLayout:
<FrameLayout
android:id="@+id/content"
android:layout_width="0dp"
android:layout_height="0dp"
android:visibility="visible"
app:layout_constraintBottom_toTopOf="@+id/navigation"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="1.0" />
然而,這引起了一個小錯誤:如果我旋轉設備片段設置回我homeFragment,無論當前。
既然不能直接叫我的
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
//
}
我tryed一些週轉:
- 我使用布爾isFragmentInitialized
- 我tryed下放onNavigation功能到外部tryed私人setFragment函數檢查所選菜單項並應用相應的片段
- 我試過直接用homeFragment開始,而不是用我使用的線性視圖
但theese解決方案帶來了沒有運氣:你打開屏幕,並選擇回家
別人只會導致與我的標準初始化相同的情況下
最後一個崩潰後。
它很有效! 感謝您的快速和有益的答案! – Tails128