对于viewpager的调用时,状态保存问题
来源:互联网 发布:ubuntu创建文件夹 编辑:程序博客网 时间:2024/06/05 09:25
问题分析:
当一个viewpager中包含多个view时,在我们不断的滑动过程中,有可能会出现view的状态丢失情况:view2中包含edittext的输入框。假设我们在里面输入111,然后不断的切换view,
当再次滑动到view2时,edittext中的内容不存在了(因为如果没有fragmentMenager的保存,在走ondertery()方法的时候就会将其销毁掉《内容不存在了,但view仍然存
在》)。
在》)。
原因分析:
viewpager底层通过fragmentMenager进行管理,默认状态可以对view的状态进行保存(表面通过添加fragmentLayout进行填充),但当view的数量增多时,就无法保证。
因此会出现view状态丢失情况。
解决方案:
1、在editText中的属性中添加id,这样通知ragmentMenager该view状态需要保存。
2、重写BaseFragment ,
判断当前的view是否为空,如果为空则肯定没有与父控件关联(产生关系)那么就new
如果不为空,则获取其(view.getParent();)parent,也就是与其关联的viewpager.如果viewpager不为空,则先
断绝其连接关系,这样view就是独立的个体,不会走ondestery()方法将其状态销毁。当再次滑动到该view时,又重新建立连接。
public abstract class BaseFragment extends Fragment {
private View view = null;
// 一个View只能被 添加布局里面ViewPager一次
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
if (view == null) {
view = createView(inflater, container, savedInstanceState);
} else {
// has parent
ViewGroup parent = (ViewGroup) view.getParent();
if (parent != null) {
parent.removeView(view);
}
}
return view;
}
protected abstract View createView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState);
}
对于viewpager中存放fragment情况。
总结:对于viewpager的adapter设置的时候。当进入adapter时。会进入父类的fragmentzhon
0 0
- 对于viewpager的调用时,状态保存问题
- 对于viewpager的调用时,状态保存问题
- 解决ViewPager+Fragment时状态保存的问题
- 关于Viewpager中的Fragment 滑动时保存状态的问题
- Viewpager中的Fragment 滑动时保存状态的问题
- 关于ViewPager+fragment的使用,viewpager切换时fragment状态保存的问题。
- android fragment+ FragmentTabHost+viewpager 切换状态不保存的问题
- Android:关于Viewpager中的Fragment 滑动时保存状态的问题
- android解决fragment+viewpager状态保存问题
- viewpager fragment中fragment的状态保存
- ViewPager加fragment如何保存fragment里面的状态
- Android ViewPager中加fragment并保存fragment的状态
- ViewPager fragment 保存状态,内部使用listview 并进行了操作,保存操作后的状态
- viewPager+多个Fragment状态保存
- Activity状态变化后状态不能保存的问题
- MapXtreme 操作地图时出现调用目标发生异常的解决方法--地图状态保存
- MapXtreme 操作地图时出现调用目标发生异常的解决方法--地图状态保存
- axis2调用.net的webservice保存登录状态
- CSS-边框效果
- 字符串
- PHP后台网站开发
- Android AES 加密
- android ndk优化方向
- 对于viewpager的调用时,状态保存问题
- amlogic rk tvbox 电视盒 定制化开发(一) 开机logo 定制
- oracle主键自增长
- shell编程——if语句 if -z -n -f -eq -ne -lt
- 在C语言头文件里我们如何应用#ifndef
- Jackson的简单使用
- NOIP模拟题 [递推][优化][dp][线段树][离散]
- mysql备份的导入
- 仿淘宝ActionBar渐变Scrollview的onScrollChanged方法调用