Fragment重叠问题

1:实例代码

    private void showFragment(int index){
        //开启事物
        FragmentTransaction transaction = manager.beginTransaction();
        hideFragment(transaction);
        switch (index) {
        case 0:
            if(fragment1 != null){//如过已经实例化,那么可直接显示出来
                transaction.show(fragment1);
            }else{//如果没有实例化,先实例化,在添加
                fragment1 = new TabFragment1();
                transaction.add(R.id.content, fragment1);
            }
            break;
        case 1:
            if(fragment2 != null){
                transaction.show(fragment2);
            }else{
                fragment2 = new TabFragment2();
                transaction.add(R.id.content, fragment2);
            }

            break;
        case 2:
            if(fragment3 != null){
                transaction.show(fragment3);
            }else{
                fragment3 = new TabFragment3();
                transaction.add(R.id.content, fragment3);
            }
            break;

        default:
            break;
        }
        transaction.commit();//切记要提交事物
    }

    /**
     * 隐藏所有的Fragment
     * @param ft
     */
    private void hideFragment(FragmentTransaction ft){
        if(fragment1 != null){
            ft.hide(fragment1);
        }
        if(fragment2 != null){
            ft.hide(fragment2);
        }
        if(fragment3 != null){
            ft.hide(fragment3);
        }

    }
时间: 2024-08-03 22:39:22

Fragment重叠问题的相关文章

Fragment重叠问题引发的思考

参考: http://stackoverflow.com/questions/16189088/overlapping-hidden-fragments-after-application-gets-killed-and-restored http://stackoverflow.com/questions/18274732/android-fragments-overlapping-issue?answertab=active#tab-top Fragment重叠问题相信很多开发者都遇到个这个

Android fragment 重叠问题——通过hide,show方式导致的解决方法

最近在做项目的时候,遇到了fragment重叠的问题.具体的情况是,我在一个fragment中,通过add的到FragmentTransaction的方式,又放了四个子fragment allFrg,movieFrg,newsFrg,otherFrg.当我点击allFrg对应tab键时,通过hide隐藏其他三个fragment,通过show来显示allFrg.正常情况下显示是对的,问题就在我切换他其他的app,操作一会之后,再回到当前的app,有很大几率会出现fragment重叠的现象. 通过搜

解决APP中fragment重叠问题

由于内存重启,导致的frgament重叠,其原因就是FragmentState没有保存Fragment的显示状态,即mHidden,导致页面重启后,该值为默认的false,即show状态,所以导致了Fragment的重叠. 那么解决方案就是自己写一些代码去保存fragment的显示状态. 当发生内存重启的时候,fragment会触onSaveInstanceState方法,那么我们可以在这个方法内部去保存当前状态,然后在onCreate中进行取值回复,代码如下: public class Bas

多个Fragment界面重叠和拍照闪退问题

记录最近遇到的多个Fragment界面重叠和调用系统相机拍照闪退问题,同时总结解决方案. ---------------------------------------------------------------------------------------------------------------------------------------------------------------- 环境:Activity(一个)+Fragment(多个) 问题一:多个fragment出

Fragment 基础使用及重叠问题

一 基本使用 Fragment依附于Activity使用,方面我们在一个页面里面切换显示多屏内容. Activity管理Fragment有两种方式,通过FragmentTransacation这个类来管理fragment的显示.隐藏 1 replace方法 1 FragmentTransaction transaction = mBaseActivity.getSupportFragmentManager().beginTransaction(); 2 transaction.replace(R

Android Fragment 的使用,一些你不可不知的注意事项

Fragment,俗称碎片,自 Android 3.0 开始被引进并大量使用.然而就是这样耳熟能详的一个东西,在开发中我们还是会遇见各种各样的问题,层出不穷.所以,是时候总结一波了. Fragment 简介 作为 Activity 界面的一部分,Fragment 的存在必须依附于 Activity,并且与 Activity 一样,拥有自己的生命周期,同时处理用户的交互动作.同一个 Activity 可以有一个或多个 Fragment 作为界面内容,并且可以动态添加.删除 Fragment,灵活控

【转载】Fragment 全解析(1):那些年踩过的坑

http://www.jianshu.com/p/d9143a92ad94 Fragment系列文章:1.Fragment全解析系列(一):那些年踩过的坑2.Fragment全解析系列(二):正确的使用姿势3.Fragment之我的解决方案:Fragmentation 本篇主要介绍一些最常见的Fragment的坑以及官方Fragment库的那些自身的BUG,这些BUG在你深度使用时会遇到,比如Fragment嵌套时或者单Activity+多Fragment架构时遇到的坑.如果想看较为实用的技巧,

Android Fragment 解析和使用

Android Fragment的生命周期和Activity类似,实际可能会涉及到数据传递,onSaveInstanceState的状态保存,FragmentManager的管理和Transaction,切换的Animation. 我们首先简单的介绍一下Fragment的生命周期. 大致上,从名字就可以判断出每个生命周期是干嘛的. AppCompatActivity就是FragmentActivity的子类,如果想使用Fragment,是要继承FragmentActivity,因为考虑到兼容的问

采用Fragment.setArguments(Bundle bundle)来传递参数,而不用构造函数

google官方推荐用setArgument来传参而不是用构造函数. 因为当切换横竖屏时,Fragment会调用自己的无参构造函数,那么在构造函数传参就会失效. public class FramentTestActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setConten