将ViewPager与自定义ViewGroups一起使用

时间:2014-08-30 17:11:26

标签: android android-viewpager viewgroup

我正在创建一个Android应用,并且我已经创建了几个自定义ViewGroup,并希望将ViewPager添加到我的MainActivity中,以便我可以在屏幕上滑动以在视图之间来回切换。然而,看起来添加到ViewPager的项目必须是片段。我是否需要为每个自定义ViewGroup创建单独的片段,或者是否可以直接添加它们?

2 个答案:

答案 0 :(得分:0)

不,你不需要它。

在FragmenAdapter中,根据当前位置为每个片段设置所需的ID布局。

// FragmentStatePagerAdapter

public class DynamicViewsFragmentAdapter extends FragmentStatePagerAdapter {

public DynamicViewsFragmentAdapter(FragmentActivity activity) {
    super(activity.getSupportFragmentManager());
}

@Override
public Fragment getItem(int position) {
    DynamicViewsFragment fragment = new DynamicViewsFragment();
    int idLayout = getIdLayoutBasedOnPosition(position);
    fragment.setIdLayout(idLayout);
    return fragment;
}

@Override
public int getCount() {
    return 3;
}

private int getIdLayoutBasedOnPosition(int position) {
    if(position == 0) return R.layout.one;
    else if (position == 1) return R.layout.one;
    else return R.layout.three;
}
}

//片段

public class DynamicViewsFragment extends Fragment {

private int _idLayout;

public void setIdLayout(int idLayout) {
    _idLayout = idLayout;
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    super.onCreateView(inflater, container, savedInstanceState);
    View rootView = inflater.inflate(_idLayout, container, false);
    return rootView;
}

}

答案 1 :(得分:0)

谢谢你的帮助。我开始使用valbertos解决方案,但我的应用程序崩溃,因为我试图在设置之前访问_idLayout。我最终找到了这个解决方案

http://architects.dzone.com/articles/android-tutorial-using

并修改它以满足我的需求,效果很好!谢谢你们的建议;