浅谈android Fragment横竖屏翻转对重新加载的要求
作者:晴天5273 发布时间:2023-07-27 21:55:28
有时候,我们在同一个activity里面有很多fragment,在横竖屏的时候,有些fragment要求重新加载数据,有些不需要,如何简单控制这些需求,本人分享一点小经验,欢迎大家指正里面的错误。
大家都知道横竖屏翻转的时候,activity会重启,fragment也会重新加载,如果现在要求在横竖屏翻转的时候,同一个activity中,一个fragment要重新加载,一个不要重新加载,那该怎么办呢?
如果在activity里面继承了onConfigurationChanged这个方法之后,这个activity和里面的fragment是不会重新加载的,也就是说显示的数据和UI不会改变,只是将竖屏的界面显示成横屏。为了控制哪个fragment不重启哪个fragment要重启。我们只要在onConfigurationChanged方法里面针对不同的fragment做不同的处理就好了。
<span style="white-space:pre;"> </span>@Override
public void onConfigurationChanged(Configuration newConfig) {
// TODO Auto-generated method stub
super.onConfigurationChanged(newConfig);
FragmentManager fragmentManager = getFragmentManager();
Fragment oldFragment = null;
if ((oldFragment = fragmentManager
.findFragmentByTag("Fragment_One")) != null) {
Fragment newFragment = new FragmentOne();
FragmentTransaction trans = fragmentManager.beginTransaction();
<span style="white-space:pre;"> </span>trans.remove(oldFragment);
<span style="white-space:pre;"> </span>if (newFragment != null) {
<span style="white-space:pre;"> </span>trans.add(R.id.fragments_container, newFragment, "Fragment_One");
<span style="white-space:pre;"> </span>}
<span style="white-space:pre;"> </span>trans.commit();
}
}
假如我们现在有FragmentOne和FragmentTwo,其中FragmentOne要求在横竖屏的时候activity不重启,但是FragmentOne要重启。那么只要在onConfigurationChanged里面判断当前显示的如果是FragmentOne就remove掉旧的FragmentOne对象,new一个新的FragmentOne对象重新显示到当前activity。这样fragment的数据和UI就可以重新加载和改变了。
这样当横竖屏翻转的时候,我们不想重启activity,但是不同的fragment,有不同的界面或者需求,我们可以通过上面的方法随意控制fragment要不要重新加载了。
来源:http://blog.csdn.net/u014385442/article/details/53536375


猜你喜欢
- java使用HttpClient调用接口HttpClient 提供的主要的功能(1)实现了所有 HTTP 的方法(GET,POST,PUT,
- 线程池的好处可以实现线程的复用,避免重新创建线程和销毁线程。创建线程和销毁线程对CPU的开销是很大的。可以限制最大可创建的线程数,可根据自己
- 一、问题在平时的业务模块开发过程中,难免会需要做一些全局的任务、缓存、线程等等的初始化工作,那么如何解决这个问题呢?方法有多种,但具体又要怎
- 效果如下:直接上代码,留着以后用,代码目录结构如下:其中BaseFragment.java是另外5个Fragment的基类,代码如下:pac
- Ctrl+1 快速修复Ctrl+D: 删除当前行 Ctrl+Alt+↓ 复制当前行到下一行(复制增加)Ctrl+Alt+↑ 复制当
- 一 介绍本节给知识追寻者给大家带来的是springSecurity入门篇,主要是简述下springSecrurity的启动原理和简单的入门搭
- 在用C++来开发Windows程序时,经常看到下面的判断情况:HRESULT hr = ::RegCreateKeyEx(hk, szKey
- 初步计划:或许由于个人原因,排球计分系统在假期就完成了,一直未写博客,就这样一直在推就是不想写,在加上过完年就工作了,可能刚实习工作比较紧所
- 目标效果: 点击动画按钮之后每张牌各自旋转 散开到屏幕上半部分的任意位置之后回到初始位置 比较像LOL男刀的技能动画 : )1: 创建卡牌对
- Redisson分布式锁之前的基于注解的锁有一种锁是基本redis的分布式锁,锁的实现我是基于redisson组件提供的RLock,这篇来看
- 在Unity中实现简单的伪时间同步,只是读取数据库所在电脑的当前时间using UnityEngine;using System.Colle
- 问题之前项目能够正常运行,因为默认选择db0,后来新的需求来了,不是默认db0,而是给参数选择db。修改后代码如下,却报错NOAUTH Au
- 属性问题引入前面我们已经在父工程中的dependencyManagement标签中对项目中所使用的jar包版本进行了统一的管理,但是如果在标
- 1 概念方面List是接口,ArrayList是List接口的一个实现类2 初始化方面2.1 List2.1.1 错误写 * ist list
- 在前面的文章中有介绍到我们在微信web开发过程中常常用到的 【微信JSSDK中Config配置】 ,但是我们在真正的使用中我们不仅仅只是为了
- IO流代码:void LoadByIO() { float time = Time.t
- 本文介绍了Android BottomSheet效果的两种实现方式,分享给大家,具体如下:BottomSheet效果BottomSheet的
- 不知不觉这个春节也已经过完了,遗憾家里没网,没能及时给大家送上祝福,今天回到深圳,明天就要上班了,小伙伴们是不是和我一样呢?今天讲的是一个大
- 在做项目中经常会遇到有项目需求是需要判断字符为中文的一些问题,所以搜集了判断中文字符的代码片段,特此分享供大家参考。直接贴出代码了,里面有详
- java弱口令检测机制1. 设计要求应具备检测口令的长度和是否在指定字符集合内的能力。应具备检测口令字符逻辑相邻的能力,如aBc,abC等。