FragmentTabHost切换Fragment时避免重复加载UI
2015-10-28 13:58
501 查看
使用FragmentTabHost时,Fragment之间切换时每次都会调用onCreateView方法,导致每次Fragment的布局都重绘,无法保持Fragment原有状态。
解决办法:在Fragment onCreateView方法中缓存View
[java] view
plaincopy
private View rootView;//缓存Fragment view
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
if(rootView==null){
rootView=inflater.inflate(R.layout.tab_fragment, null);
}
//缓存的rootView需要判断是否已经被加过parent, 如果有parent需要从parent删除,要不然会发生这个rootview已经有parent的错误。
ViewGroup parent = (ViewGroup) rootView.getParent();
if (parent != null) {
parent.removeView(rootView);
}
return rootView;
}
解决办法:在Fragment onCreateView方法中缓存View
[java] view
plaincopy
private View rootView;//缓存Fragment view
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
if(rootView==null){
rootView=inflater.inflate(R.layout.tab_fragment, null);
}
//缓存的rootView需要判断是否已经被加过parent, 如果有parent需要从parent删除,要不然会发生这个rootview已经有parent的错误。
ViewGroup parent = (ViewGroup) rootView.getParent();
if (parent != null) {
parent.removeView(rootView);
}
return rootView;
}
相关文章推荐
- Codeforces Round #250 (Div. 1) D. The Child and Sequence 线段树 区间取摸
- EasyUI - DataGrid 组建 - [ 排序功能 ]
- 对Django框架架构和Request/Response处理流程的分析
- iOS UITableView的编辑方法
- Medial Queries的另一用法——服务于IE
- UIView的简单动画
- UIScrollew笔记
- UE3采用多进程编译Shader
- QuickSand图片点击后分裂成几份消失效果《IT蓝豹》
- CSS media query应用中的层叠特性使用最佳实践
- iOS界面编程-UIDatePicker
- UIScrollView的属性总结
- STL顺序容器【vector】【deque】【list】
- ios9新增 UIAlertController 简单用法
- 关于Egret Engine 2.5.3引入GUI模块问题记录
- KSImageNamed 的安装 和常见问题处理
- LeetCode "Binary Tree Longest Consecutive Sequence"
- Unique Paths - LeetCode
- iOS-UIKit(UIDatePicker.h--解读)
- HDU 4449 Building Design 三维凸包+空间坐标变换