我正在使用ConstraintLayout activity_main编写一个应用程序,该应用程序除了BottomNavigationBar之外还是空的。
触摸导航栏上的一个选项,即可在Activity_main上添加一个片段。 (如预期的那样)从屏幕的左上角绘制。
当我尝试将另一个Fragment附加到activity_main时出现问题。我想要的行为是将新的Fragment限制在旧的Fragment之下,但它是从屏幕的左上角绘制的,从而导致重叠。
随附的代码是我用来向activity_main添加片段的代码。
public boolean loadFragment(Fragment fragment, String rank) {
if (fragment != null) {
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
if (rank.equals("major")) {
fragmentTransaction.replace(R.id.container, fragment, "major");
} else if (rank.equals("minor")) {
if (fragmentManager.findFragmentByTag("minor") == null) {
fragmentTransaction.add(R.id.container, fragment, "minor");
} else {
fragmentTransaction.replace(R.id.container, fragment, "minor");
}
}
fragmentTransaction.addToBackStack("last");
fragmentTransaction.commit(); // a FragmentTransaction object can only commit once.
return true;
}
return false;
}
我知道LinearLayout的行为与我想要的非常接近,但是存在导航栏被绘制在屏幕顶部的问题,这是我不想要的。
有人能建议一种在运行时以编程方式将片段一个一个地约束一个的方法吗?