我正在创建一个Android应用,并且我已经创建了几个自定义ViewGroup,并希望将ViewPager添加到我的MainActivity中,以便我可以在屏幕上滑动以在视图之间来回切换。然而,看起来添加到ViewPager的项目必须是片段。我是否需要为每个自定义ViewGroup创建单独的片段,或者是否可以直接添加它们?
答案 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
并修改它以满足我的需求,效果很好!谢谢你们的建议;