我一直在开发一个小的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