Android fragment隐藏和显示重叠问题解决(叠加显示)

项目场景:

项目首页使用RadioGroup+RadioButton+Fragment实现页面切换,出现了一个问题fragment会出现重叠问题,就是一个fragment显示了两层,
并不是必现问题。

经过排查发现是项目主页面Activity被销毁重建了,但是之前的fragment对象没有被回收导致。

原因分析:

在旋转屏幕后或者页面调到后台一段时间在打开,就会出现Fragment重叠显示,显示了两个相同fragment的效果。


解决方案:

第一步,在添加fragment的时候添加key。
 第二步,再onCreate里判断savedInstanceState是否为空,若不为空说 明是重建的activity,用key将fragment对象取出来即可。
  下面我们来看一下具体代码

    private FragmentManager fManager;
    private FragmentTransaction transaction;
    private List<Fragment> fragmentList = new ArrayList<>();
    private FragmentOne fragmentOne;
    private FragmentTwo fragmentTwo;
    private FragmentFour fragmentFour;
    private FragmentFive fragmentFive;
    private static final String FRAGMENT_ONE_KEY = "FragmentOne";
    private static final String FRAGMENT_TWO_KEY = "FragmentTwo";
    private static final String FRAGMENT_FOUR_KEY = "FragmentFour";
    private static final String FRAGMENT_FIVE_KEY = "FragmentFive";
    protected void onCreate(Bundle savedInstanceState) {
   
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        fManager = getSupportFragmentManager();
        //如果activity销毁后重建,在这里拿出之前的Fragment对象。
        if (savedInstanceState != null) {
   
            fragmentOne = (FragmentOne) fManager.findFragmentByTag(FRAGMENT_ONE_KEY);
            fragmentTwo = (FragmentTwo) fMana
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木易明~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值