android中fragment的4个小问题

本文介绍了Android中Fragment的四个关键问题:如何清空回退栈,对当前Fragment压栈处理,推荐使用add、hide和show替代replace,以及解决Fragment重叠问题。在清空回退栈时,需注意参数设置;压栈处理能保留当前界面状态;尽量避免使用replace以防止意外替换;当Activity被回收时,妥善处理onSaveInstanceState以防止Fragment重叠。
摘要由CSDN通过智能技术生成

1. 清空fragment回退栈

int count = getActivity().getSupportFragmentManager().getBackStackEntryCount();

 

BackStackEntry backStack = getActivity().getSupportManager().getBackStackEntryAt(i);

 

getActivity().getSupportManager().popBackStackImmediate(****, 0 or 1)

 

即弹出Tag为****之上的所有(包括自身)的fragment

 

第二个参数只能是0或者1(POP_BACK_STACK_INCLUSIVE)

 

注意: 当第一个参数为null时,第二个参数为0时候:

经测试,回退站中的fragment个数减少了一个

当第二个参数为1时候:

会弹出所以回退栈fragment回退栈的个数为0

 

2.对当前的fragment进行压栈处理

使用fragment的时候,我们为了在界面跳转的时候保存当前界面,经常对fragment进行压栈处理

fragmentManager.beginTransaction().addToBackStack(null)

 

3.尽量使用add hide show来替换replace

 

4.fragment重叠问题

fragment状态保存,当系统内存不足的时候,fragment宿主Activity回收的时候,

fragment并没有被收回,Activity被系统回收的时候&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值