【问题标题】:Using ViewPager with Custom ViewGroups将 ViewPager 与自定义视图组一起使用
【发布时间】:2014-08-30 17:11:25
【问题描述】:
我正在创建一个 Android 应用程序,并且我创建了几个自定义 ViewGroups,并希望将 ViewPager 添加到我的 MainActivity 中,以便我可以滑动屏幕以在视图之间来回切换。但是看起来添加到 ViewPager 的项目必须是片段。我需要为每个自定义 ViewGroup 创建一个单独的 Fragment 还是有办法直接添加它们?
【问题讨论】:
标签:
android
android-viewpager
viewgroup
【解决方案1】:
不,你不需要它。
在您的 FragmenAdapter 中,根据当前位置为每个 Fragment 设置所需的 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;
}
}