解决切换Fragment出现卡顿的问题

来源:互联网 发布:最好的桌面主题软件 编辑:程序博客网 时间:2024/04/30 00:53

在使用Fragment过程中,发现切换fragment会出现卡顿,主要是每次切换时都会重新创建,直接上代码
public class MainActivity extends FragmentActivity {

@Bind(R.id.dbGroup)RadioGroup dbGroup;private Fg_fangan fg_fangan;private Fg_shujujiance fg_shujujiance;private Fg_mapjiance fg_mapjiance;private Fg_zhuanghao fg_zhuanghao;private FragmentManager manager;private FragmentTransaction transaction;@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {        //透明状态栏        getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);    }    setContentView(R.layout.activity_main);    dbGroup= (RadioGroup) findViewById(R.id.dbGroup);    ButterKnife.bind(this);    init_date();    setupWidgets();}private void init_date() {    manager=getSupportFragmentManager();    transaction=manager.beginTransaction();    if (fg_shujujiance ==null ) {        fg_shujujiance = new Fg_shujujiance();    }    transaction.add(R.id.fragment, fg_shujujiance);    // Commit the transaction    transaction.commit();}private void setupWidgets() {    dbGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {        @Override        public void onCheckedChanged(RadioGroup group, int checkedId) {            // TODO Auto-generated method stub            manager = getSupportFragmentManager();            transaction = manager.beginTransaction();            hideFragments(transaction);            switch (checkedId) {                case R.id.rbFangAn:                    if (fg_fangan == null) {                        fg_fangan = new Fg_fangan();                        transaction.add(R.id.fragment, fg_fangan);                    } else {                        transaction.show(fg_fangan);                    }                    break;                case R.id.rbJianCe:                    if (fg_shujujiance == null) {                        fg_shujujiance = new Fg_shujujiance();                        transaction.add(R.id.fragment, fg_shujujiance);                    } else {                        transaction.show(fg_shujujiance);                    }                    break;                case R.id.rbMapJianCe:                    if (fg_mapjiance == null) {                        fg_mapjiance = new Fg_mapjiance();                        transaction.add(R.id.fragment, fg_mapjiance);                    } else {                        transaction.show(fg_mapjiance);                    }                    break;                case R.id.rbZhuangHao:                    if (fg_zhuanghao == null) {                        fg_zhuanghao = new Fg_zhuanghao();                        transaction.add(R.id.fragment, fg_zhuanghao);                    } else {                        transaction.show(fg_zhuanghao);                    }                    break;            }            transaction.commitAllowingStateLoss();        }    });}private void hideFragments(FragmentTransaction transaction) {    if (fg_fangan!=null){        transaction.hide(fg_fangan);    }    if (fg_shujujiance!=null){        transaction.hide(fg_shujujiance);    }    if (fg_mapjiance!=null){        transaction.hide(fg_mapjiance);    }    if (fg_zhuanghao!=null){        transaction.hide(fg_zhuanghao);    }}}

希望和大家共同进步

0 0
原创粉丝点击