fragment重叠问题解决方案

本文介绍了一种简单有效的方法,通过删除子View防止Android应用中Fragment出现重叠问题。该方案适用于使用replace方式切换Fragment的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

其中一种比较方便的方案,请看一位大神写的:9行代码让你App内的Fragment对重叠说再见,里面还有从源码的角度分析重叠的原因,还给出了解决方案,我先膜拜一下!!

这里我提供一种很方便的解决方案,就是通过删除子View去实现。我通过在Basefragment的onCreateView里面删除子View去实现。我的项目的主activity是用replace来加入fragment的。

@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		ViewGroup group = ((ViewGroup)mMainLayout.getParent());
		if(group != null)
			group.removeAllViews();
		mMainLayout.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
		return mMainLayout;
	}
然后子fragment初始化布局可以这样,在onCreate里面:

  @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.fragment_unlinkage_homepage);
     	....
    }
上面的setContentView是自己在BaseFragment里实现的方法:

	public void setContentView(int layoutId){
		mMainLayout = (ViewGroup) ViewGroup.inflate(mActivity, layoutId, null);
	}
这样应该就能解决问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值