问题描述
我的应用程序使用 BottomNavigationBar 在 Fragment 之间切换,它是这样做的:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
BottomNavigationView bottomNav = findViewById(R.id.barra);
bottomNav.setOnNavigationItemSelectedListener(navListener);
getSupportFragmentManager().beginTransaction().replace(R.id.container,new KeyboardFragment()).commit();
bottomNav.setSelectedItemId(R.id.keyboard);
}
private BottomNavigationView.OnNavigationItemSelectedListener navListener =
new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
Fragment selectedFragment = null;
switch (item.getItemId()){
case R.id.camera:
selectedFragment = new CameraFragment();
break;
case R.id.keyboard:
selectedFragment = new KeyboardFragment();
break;
case R.id.settings:
selectedFragment = new SettingsFragment();
break;
}
getSupportFragmentManager().beginTransaction().replace(R.id.container,selectedFragment).commit();
return true;
}
};
}
我希望那些 Fragments
是静态的,所以当我在它们之间切换时,它们的内容和视图不会消失。我尝试在 MainActivity
的 onCreate()
方法中创建它们,但它仅有助于将文本保留在 EditText
小部件中,其余的视图和内容都消失了。
我看过其他类似的问题,但他们的回答很差,我对此很陌生。根据类似问题的一些答案,我尝试使用 add()
或 attach()
之类的函数代替 replace()
,但我认为我做得不好;事实上,有时我的应用会崩溃。
我也应该在这里粘贴我的 layout.xml 文件吗?这些片段被“显示”成一个简单的 FrameLayout
。 先谢谢:)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)