1. 问题现象
在之前开发的一款应用中,有用户反映将App长期置于后台(20-30min,小米Mix2)后返回,在首页切换Fragment,有时会出现Fragment重叠显示的问题,示意图如下:
正常情况:
异常情况:
离开时用户停留在第三个Fragment,返回时TabLayout选择的是第一个Fragment,第一个和第三Fragment同时显示,并且此时切换Fragment,第三个Fragment并不会隐藏。
显示和隐藏Fragment的代码如下:
private void showFragmentByPosition(int position) {
hideAllFragment();
switch (position) {
case INDEX_ONE:
showOneFragment();
break;
case INDEX_TWO:
showTwoFragment();
break;
case INDEX_THREE:
showThreeFragment();
break;
default:
break;
}
}
private void hideAllFragment() {
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
if (oneFragment != null) {
transaction.hide(oneFragment);
}
if