我想将以前创建的7个视图动态添加到我的viewpager。
我最终尝试实现的是我的屏幕的一部分(50dp高度,match_parent宽度)看起来像这样。
|视图1 |视图2 |
当我向右滑动时,显示的项目将是VIEW 2和VIEW 3,下一次滑动将是VIEW 3和VIEW 4,依此类推。
我的问题是我的7个视图已经在我的主片段的onCreateView中创建了。我想将它们动态添加到FragmentStatePagerAdapter中定义的片段。
public class MyPagerAdapter extends FragmentStatePagerAdapter {
private View view1Layout;
private View view2Layout;
public MyPagerAdapter(FragmentManager fm, View view1Layout, View view2Layout) {
super(fm);
this.view1Layout = view1Layout;
this.view2Layout = view2Layout;
}
@Override
public Fragment getItem(int position) {
Fragment fragment = new MyFragment();
LinearLayout rootLayout = ((LinearLayout) fragment.getView().getRootView());
switch (position % 7) {
case 0:
rootLayout.addView(view1Layout);
rootLayout.addView(view2Layout);
break;
case 1:
// ....
break;
}
return fragment;
}
@Override
public int getCount() {
return 1000;
}
}
public static class MyFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.layout_dashboard_line, container, false);
}
}
可以想象,当我尝试获取rootLayout时会崩溃,因为此时片段没有实例化。有没有一种很好的方法来实现我想要的或者解决方法,如果没有?
谢谢!
答案 0 :(得分:0)
我是以错误的方式做的......
即使在我的情况下更方便,我也不应该传递视图,但是我应该传递这些视图中包含的数据并根据显示的片段刷新它们。