Android中Fragment切换时重叠透明问题总结

Android Fragment 重叠问题

在android网站看文档学习使用Fragment时遇到了一个问题,Fragment切换后还可以看见之前的Fragment,并且之前的Fragment依旧可以点击,查了很久没有结果,现在把我的问题以及原因分享出来,供和我遇到一样问题的朋友参考。

我实现的是在一个Activity中添加一个ListFragment,点击题目以后动态添加一个带TextView的Fragment并切换到它。

一开始我的ListFragment是继承android.app.ListFragment,而Fragment继承自android.support.v4.app.Fragment,出现了重叠问题。之后把ListFragment的父类改成android.support.v4.app.ListFragment,圆满解决问题。

接着就试验了把Fragment的父类改成android.app.Fragment,也解决了问题,但是又出现了新问题,下面会讨论,不过这两个方案说明:切换时不要混着用! 这是一切问题的根源。

前面说到使用android.app.Fragment和android.app.ListFragment虽然成功但是有一个问题就是当按back键的时候不回退到ListFragment而是直接退出,说明addToBackStack()方法没有效果。我的IDE是Android Studio 2.1,在这种情况下新建的工程中MainActiviyt默认是继承android.support.v7.app.AppCompatActivity的,还是和重叠的问题一样混着用,改成直接继承Activity就可以了。

还有一种情况在developer android给的例子中MainActivity是继承android.support.v4.app.FragmentActivity的,在这种情况下继承自android.app.Fragment和android.app.ListFragment的Fragment也是不能回退到切换之前的。

说到android.app.ListFragment还有一件事,它不调用onAttach(Context context)方法,而在继承自android.support.v4.app.ListFragment的类中会调用。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值