在FrameLayout中的DrawerLayout内部,当我单击Navigation Menu的项目时,它们不断碰撞并相互堆叠,那么我该怎么办?
这是我用于在onNavigationItemSelected中加载片段的Java代码
这里的框架布局称为fragmentContainer。
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()){
case R.id.nav_profile:
loadFragment(new ProfileFragment());
break;
case R.id.nav_logout:
logoutPrompt();
break;
default:
loadFragment(new HomeFragment());
break;
}
drawerLayout.closeDrawer(GravityCompat.START);
return true;
}
private void loadFragment(Fragment fragment) {
FragmentManager manager = getSupportFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
transaction.add(R.id.fragment_container,fragment);
transaction.commit();
}
欢迎提出任何建议。
我期待的fragmentContainer(框架布局)不会保持堆叠,我第一次注意到这一点时,回收视图之间的空间,我可以查看它下面的相同信息的另一个回收视图和滚动.
1条答案
按热度按时间pvcm50d11#
在您的
loadFragment()
中,您要在现有Fragment的基础上添加一个新Fragment:如果您不希望堆叠片段,则应改用
replace()
:你可以参考官方文件了解更多细节。