我的导入的是
import android.app.FragmentManager;
import android.app.FragmentTransaction;
这俩个包,因为我导入v4包getSupportFragmentManager出不来,所以我用的是app包,
FragmentManager fm=getFragmentManager();
FragmentTransaction ft=fm.beginTransaction();
PersonageCentreHomeFragment home = new PersonageCentreHomeFragment();
ft.add(R.id.personage_my, home);
ft.commit();
这里是下面的代码,我这样写之后,fragment会重现透明背景,重叠现象,之前做还好好的,不知道这次是怎么了xml布局文件我是用fragmentLayout来做的
楼上正解,简单粗暴的方法就是你可以给你的每一个fragment加上背景,也不会有重叠的效果
由于这个项目的首页是类似微信的那种 tab 有四个界面 联系人,消息,动态,设置四个界面,因为有频繁的切换,所以就没有使用replace 和 remve方法。而是通过hide,show方式,这样虽然不会重复创建Fragment了,节省了view重绘的性能问题。
但是这样就容易导致一个问题:就是程序长时间后台导致fragment重叠。
&nbs......
答案就在这里:Android fragment 重叠问题的解决方法
----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?
为什么不用ViewPager来做切换呢?
解决方法如下,在进入onCreate函数时,先去判断savedInstanceState是否为null,如果不为null,则表示里面有保存这四个fragment。则不再重新去add这四个fragment,而是通过Tag从前保存的数据中直接去读取。相关代码如下:
FragmentManager fManager;
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
fManager = getFragmentManager();
if (savedInstanceState != null) {
allFrg = (AllOfficialAccountFragment) fManager.findFragmentByTag("allFrg");
movieFrg = (MovieOfficialAccountFragment) fManager.findFragmentByTag("movieFrg");
newsFrg = (NewsOfficialAccountFragment) fManager.findFragmentByTag("newsFrg");
otherFrg = (OtherOfficialAccountFragment) fManager.findFragmentByTag("otherFrg");
}
super.onCreate(savedInstanceState);
}
这样子仍是对之前保存的fragment操作,成功解决了重叠的问题。
最后给题主推荐一个技术干货的APP,里面有不少 Android 相关的技术内容,稀土掘金 http://gold.xitu.io/app
当你添加一个的时候,隐藏其他的,还有布局文件可以用framelayout啊。
别用add方法,有个replace方法