动态地向Viewpager托管的片段添加视图

时间:2015-05-03 07:25:31

标签: android android-fragments android-viewpager

我想将以前创建的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时会崩溃,因为此时片段没有实例化。有没有一种很好的方法来实现我想要的或者解决方法,如果没有?

谢谢!

1 个答案:

答案 0 :(得分:0)

我是以错误的方式做的......

即使在我的情况下更方便,我也不应该传递视图,但是我应该传递这些视图中包含的数据并根据显示的片段刷新它们。