【问题标题】: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;
}

}

【讨论】:

    【解决方案2】:

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

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

    并根据我的需要对其进行了修改,效果很好!谢谢两位的建议;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-26
      • 2012-10-20
      • 2012-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多