Fragment hide,show方法后,会调用什么方法

    在实际开发项目中,经常用到 Fragment,并且为了复用Fragment,所以基本上就是用show()和hide方法来复用Fragment。在Fragment从隐藏到显示,可能会做一些处理,例如数据重新请求加载等等,那么Fragment从隐藏到显示,会调用什么方法呢?下面先看看具体的代码实现:

FragmentTransaction transaction = fragmentManager.beginTransaction();
     Fragment fragment;//
     //隐藏 Fragment 
     if (fragment!= null) {
transaction.hide(fragment);
}
      //显示、加载Fragment 
       if (fragment == null) {
// 如果fragment为空,则创建一个并添加到界面上
fragment = new AllFragment();
transaction.add(R.id.seckilling_fl, fragment);
} else {
// 如果Fragment不为空,则直接将它显示出来
transaction.show(fragment);
}
     当Fragment 从隐藏切换至显示的时候,不会调用onResume(),Fragment 的onResume()是Fragment 和它的宿主在切换时才会调用的,而Fragment 之间切换时,不会调用onResume()方法,仔细查看发现Fragment 之间切换,Fragment 从隐藏切换至显示,会调用onHiddenChanged(boolean hidden)方法
public void onHiddenChanged(boolean hidden) {
// TODO Auto-generated method stub
super.onHiddenChanged(hidden);
if (hidden) {// 不在最前端界面显示

} else {// 重新显示到最前端中

}
}

    如果你对Fragment ,已经了解,那么推荐这篇文章,Android 项目开发框架
  • 14
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
您好!对于 Fragmenthide 操作失效的问题,有以下几种可能的原因和解决方法: 1. 检查是否正确调用hide 方法:确保在执行 hide 操作之前,已经通过 FragmentManager 获取了对应的 Fragment 对象,并且调用hide 方法进行隐藏。 例如: ```java FragmentManager fragmentManager = getSupportFragmentManager(); FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); fragmentTransaction.hide(fragment); fragmentTransaction.commit(); ``` 2. 检查是否调用了 show 方法:如果在执行 hide 操作之后,需要再次显示该 Fragment,请确保之后有调用了对应的 show 方法。 例如: ```java FragmentManager fragmentManager = getSupportFragmentManager(); FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); fragmentTransaction.hide(fragment); // 其他操作 fragmentTransaction.show(fragment); fragmentTransaction.commit(); ``` 3. 检查 Fragment 的布局文件和容器:在隐藏 Fragment 之后,确保对应的 Fragment 容器(如 FrameLayout)不被其他 View 或 Fragment 遮挡或覆盖住。 另外,如果使用了 ViewPager 或 FragmentPagerAdapter 等方式来管理多个 Fragment,需要确保在隐藏一个 Fragment 时,同时也要将其从 ViewPager 中移除(通过调用 `remove()` 方法)。 如果以上方法都没有解决问题,可以提供更多相关代码或详细描述具体情况,我尽力帮助您解决问题。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值