這個問題困擾了我一天一個下午,查閱了很多資料都沒有結果,還是自己對着代碼看,看出了端倪。
先簡單的說明一下錯誤的原因,fragment沒有實例化。
在外層的viewpager中我採用的是inflate方法,直接把fragment的佈局文件轉化爲視圖,但是fragment裏面的java代碼並沒有執行絲毫,所以導致裏層的數據根本沒有加載上去,如果你還沒有看懂,下面我將以代碼說明。
mainacitivty。java裏面
View view1 = View.inflate(this, R.layout.school_fragment_layout, null);
View view2 = View.inflate(this, R.layout.school_mate_fragment_layout, null);
View view3 = View.inflate(this, R.layout.dynamic_fragment_layout, null);
View view4 = View .inflate(this, R.layout.personal_fragment_layout, null);
view_list.add(view1 );
view_list.add(view2 );
view_list.add(view3 );
view_list.add(view4 );
MyViewPagerAdapter adapter = new MyViewPagerAdapter(view_list, getActivity().getApplicationContext());
mviewpager.setAdapter(adapter);
這就樣fragment沒有初始化。
那麼我們就要利用fragmentpageradapter,這個adapter需要填入的參數是fragment,下面代買示例:
fragment_list.add(new SchoolFragment());
fragment_list.add(new SchoolMateFragment());
fragment_list.add(new DynamicFragment());
fragment_list.add(new PersonalFragment());
//特別說明activitiy要繼承自FragmentActivity
MyFragmentPagerAdapter adapter = new MyFragmentPagerAdapter(getSupportFragmentManager(), fragment_list);
mviewpager.setAdapter(adapter);
這樣子大家就應該都懂了,還有什麼不懂和不足的地方請留言。