黑马程序员技术交流社区
标题: 切换Fragment时状态错乱 [打印本页]
作者: 马伟奇 时间: 2015-1-28 19:06
标题: 切换Fragment时状态错乱
使用FragmentTabHost时,Fragment之间切换时每次都会调用onCreateView方法,导致每次Fragment的布局都重绘,无法保持Fragment原有状态。
解决办法:在Fragment onCreateView方法中缓存View
- <font color="#362e2b"><font face="Arial"><font style="font-size: 14px"> 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;
- }</font></font></font>
复制代码
作者: 位俊鹏 时间: 2015-1-28 21:54
老师是这种情况吗? 我们最近做的产品在遇到程序崩溃之后再切换fragment就会出现第一页和第二页的重叠的错误。
-
Screenshot_2015-01-28-21-50-28.png
(87.99 KB, 下载次数: 7)
作者: 马伟奇 时间: 2015-1-29 20:50
添加fragment的时候先把以前的移除再添加
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |