android Fragment相关问题

本文介绍了在Android开发中优化Fragment切换的方法,避免使用replace以提高性能,改用hide和show。同时,针对Fragment重叠问题,提出了通过重写onSaveInstanceState不保存状态的解决方案。另外,为了解决getActivity为空的问题,建议在onAttach中初始化Activity引用。对于fragment嵌套导致的崩溃,推荐在onDetach中清理mChildFragmentManager。
摘要由CSDN通过智能技术生成

1.fragment的切换
以前做项目时,fragment切换总是用replace方法,这样对性能影响很大,所以换一种方式用hide和show方法进行展示。
首先定义一个全局的currentFragment

“`
private Fragment currentFragment = new Fragment();
private FragmentTransaction switchFragment(Fragment targetFragment) {
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
if(!targetFragment.isAdded()){

            if(currentFragment != null){
                transaction.hide(currentFragment);
            }
            transaction.add(R.id.ll_main,targetFragment,targetFragment.getClass().getName());
        }else{

            transaction.hide(currentFragment).show(targetFragment);
        }
        currentFragment = targetFragment;
    return transaction;
}


然后再在切换button上直接调用即可
switchFragment(oneFg).commit();
如果想要刷新数据的话,可以利用fragment的隐藏方法:
@Override
publ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值