Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android Fragment 嵌套使用報錯

Android Fragment 嵌套使用報錯

編輯:關於Android編程

在新的SDK每次創建activity時,會自動生成
public static class PlaceholderFragment extends Fragment


fragment模塊,在該模塊的基礎上進行嵌套fragment代碼如下:

public static class PlaceholderFragment extends Fragment {

		static FragmentManager fm;
		public PlaceholderFragment() {		
   			fm=getChildFragmentManager();
		}
		@Override  
		public void onCreate(Bundle savedInstanceState) {  
		    super.onCreate(savedInstanceState);  	
		 
	    }  
		
		@Override
		public View onCreateView(LayoutInflater inflater, ViewGroup container,
				Bundle savedInstanceState) {
			View rootView=LayoutInflater.from(getActivity())
					.inflate(R.layout.tab, null);
			
			if(fm.findFragmentByTag("haha")==null)
			{
				Fragment1 f1=new Fragment1();
				fm.beginTransaction().add(R.id.frame_tab,f1,"haha").commit();
			}
			return rootView;
		}


結果報錯如下:

\

總之就是說Acitivity被被銷毀了。

原因:

fm=getChildFragmentManager();在 PlaceholderFragment 的構造函數中調用,此時它還沒有創建onCreate,自然獲取不到Fragment及activity了,因此將其寫入
public void onCreate(Bundle savedInstanceState) {  
		    super.onCreate(savedInstanceState);  		 
			fm=getChildFragmentManager();
	    }  

錯誤解決,大家一定要對Fragment及activity生命周期注意啊。



  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved