这个问题困扰了我一天一个下午,查阅了很多资料都没有结果,还是自己对着代码看,看出了端倪。
先简单的说明一下错误的原因,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);
这样子大家就应该都懂了,还有什么不懂和不足的地方请留言。