`
liuguofeng
  • 浏览: 434398 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

FragmentTabHost切换Fragment时避免重复加载UI

 
阅读更多

使用FragmentTabHost时,Fragment之间切换时每次都会调用onCreateView方法,导致每次Fragment的布局都重绘,无法保持Fragment原有状态。

        解决办法:在Fragment onCreateView方法中缓存View

 

[java] view plaincopy
 
  1.     private View rootView;//缓存Fragment view  
  2.       
  3.     @Override  
  4.     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {  
  5.         if(rootView==null){  
  6.             rootView=inflater.inflate(R.layout.tab_fragment, null);  
  7.         }  
  8.  //缓存的rootView需要判断是否已经被加过parent, 如果有parent需要从parent删除,要不然会发生这个rootview已经有parent的错误。  
  9.         ViewGroup parent = (ViewGroup) rootView.getParent();  
  10.         if (parent != null) {  
  11.             parent.removeView(rootView);  
  12.         }   
  13.         return rootView;  
  14.     }  
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics