2 sinat 25136209 sinat_25136209 于 2017.09.03 22:51 提问

关于安卓中fragment中视图重叠的问题

图片说明
123都有自己的fragment,然后3fragment上有个item,然后这个item是个新的fragment,然后如果此时打开了item的fragment再去点击12页面,就会造成视图的重叠。
请问这时候应该怎么解决?

4个回答

zgy621101
zgy621101   Rxr 2017.09.04 09:08
chenbaige
chenbaige   Rxr 2017.09.04 10:41

你是通过add方法去切换fragment的吧,这样会导致上层覆盖下层fragment。建议使用replace方法去切换fragment。

j550341130
j550341130 这样会卡
3 个月之前 回复
dongfeng9ge
dongfeng9ge   Ds   Rxr 2017.09.04 11:24

你为啥不用TabLayout + ViewPager呢?

sinat_25136209
sinat_25136209 那个item是像设置界面的item,并不是像电商项目那种tablayout+viewpager的结构。我不知道是否能使用
3 个月之前 回复
j550341130
j550341130   2017.09.04 15:51

使用hide/show的方式, 提供参考:

    /**
     * 使用hide/show展示MainActivity的fragment
     * 加锁防止同时点击导致的跳转混乱问题;
     */
    public synchronized void replaceMainContent(Fragment fragment) {
        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
        Fragment exitFragment;
        boolean isExit = false;
        for (int i = 0; i < fragmentsList.size(); i++) {
            exitFragment = fragmentsList.get(i);
            if (exitFragment != null)
                fragmentTransaction.hide(exitFragment);
            if (exitFragment == fragment)
                isExit = true;
        }

        if (!isExit) {
            fragmentsList.add(fragment);
            fragmentTransaction.add(R.id.fl_main, fragment);
        }

        fragmentTransaction.show(fragment);
        fragmentTransaction.commitAllowingStateLoss();
    }
Csdn user default icon
上传中...
上传图片
插入图片