【发布时间】:2018-10-01 12:05:26
【问题描述】:
我在单个活动中有三个 Fragment,FragmentTransaction 用于
片段 A 到片段 B, 片段 B 到片段 C
工作正常,但在 onBackPressed() 上它会像
一样流动片段 C 到片段 B,片段 B 到片段 A,
但是当 onBackPressed() For Fragment A 它会关闭 Fragment,我不想关闭 Fragment A,这是我的代码。
在 OnNavigationItemSelectedListener 上。
private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
= new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
Fragment fragment;
switch (item.getItemId()) {
case R.id.navigation_home:
fragment = new HomeFragment();
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.frame_container, fragment);
transaction.commit();
return true;
case R.id.navigation_my_orders:
fragment = new MyOrdersFragment();
loadFragment(fragment);
return true;
case R.id.navigation_profile:
fragment = new ProfileFragment();
loadFragment(fragment);
return true;
}
return false;
}
};
用于加载片段。
private void loadFragment(Fragment fragment) {
// load fragment
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.setCustomAnimations(R.anim.right_enter, R.anim.right_enter);
transaction.replace(R.id.frame_container, fragment);
transaction.addToBackStack(null);
transaction.commit();
}
如何解决请告诉我。
【问题讨论】:
-
为什么不用
transaction.addToBackStack(""); -
#Farrokh,如果我不使用那个 transaction.addToBackStack("");它仍然会关闭 Fragment A。
标签: android android-fragments android-activity fragment android-fragmentactivity