android - 多次在 ViewPager 中使用一个 Fragment

标签 android dynamic android-viewpager fragment

是否可以多次在 viewpager 中使用一个 fragment ?我正在尝试使用 ViewPager 构建一个动态更新的 UI。 我想使用相同的设计,基本上是相同的 fragment ,每个页面都有不同的数据,例如 ListView 适配器。

最佳答案

您可以为 ViewPager 中的每个页面实例化相同的 Fragment 类,传递 ViewPager 的位置来控制要显示的内容。类似的东西:

public class MyFragment extends Fragment {

    private int mIndex;

    public MyFragment(int index) {
        mIndex = index;
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {

        switch(mIndex){
            case 0:
            // do you things..
            case 1:
            // etcetera
        }             
    }
}

然后,在你的 FragmentPagerAdapter 中:

public static class MyAdapter extends FragmentPagerAdapter {
    public MyAdapter(FragmentManager fm) {
        super(fm);
    }

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

    @Override
    public Fragment getItem(int position) {
        return new MyFragment(position);
    }
}

这样您就可以重用大部分代码,仅更改 switch/case 语句中您需要的代码。

关于android - 多次在 ViewPager 中使用一个 Fragment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13431907/

相关文章:

java - findViewById() 找不到自定义 View ,但它存在于布局中

android - Flurry Session 数据对比 Google Analytics

c# - 动态 JContainer (JSON.NET) & 在运行时迭代属性

android - ViewPager2 中的 fragment 在返回父 fragment 时被重新创建

java - Android Listview Inside viewpager 始终显示所有页面中最后一个 viewpager 页面数组列表数据

android - 您如何创建一个只引导用户在 Google Play 上下载完整版本的 stub 应用程序?

javascript - 通过 Android WebView 从 JavaScript 调用 Java 函数

具有动态名称问题的 c# 动态 json 对象

Angular 6/7 AOT : Dynamic template render - load JitCompiler for module

android - 如何使用 viewpager 和多个 fragment 创建多步骤注册表单?