如果我们必须在android中使用viewpager创建多个页面,那么我们必须创建多个片段吗?还有其他选择吗?
我正在创建一个android问答应用程序,其中我将使用viewpager。我已经阅读了一些教程,在这些教程中,每个新页面都会为片段/选项卡创建一个新类。现在如果我想总共有15页,那么我需要创建那么多的类吗?没有其他选择吗?您应该为要在如果我们必须在android中使用viewpager创建多个页面,那么我们必须创建多个片段吗?还有其他选择吗?,android,android-fragments,android-viewpager,android-tabs,Android,Android Fragments,Android Viewpager,Android Tabs,我正在创建一个android问答应用程序,其中我将使用viewpager。我已经阅读了一些教程,在这些教程中,每个新页面都会为片段/选项卡创建一个新类。现在如果我想总共有15页,那么我需要创建那么多的类吗?没有其他选择吗?您应该为要在查看页面中显示的每个不同页面创建一个片段。然后,您可以通过FragmentPagerAdapter中的位置选择每个片段,视图页面中的每个页面都是片段的不同实例,但不要求每个页面都是片段的不同类 在一个过于简单的应用程序中,您可以想象ViewPager中的每个页面只会
查看页面中显示的每个不同页面创建一个片段。然后,您可以通过FragmentPagerAdapter
中的位置选择每个片段
,视图页面中的每个页面
都是片段
的不同实例,但不要求每个页面都是片段
的不同类
在一个过于简单的应用程序中,您可以想象ViewPager
中的每个页面只会显示不同的数字。您可以通过创建一个OneFragment
类来显示“1”,创建一个TwoFragment
类来显示“2”,依此类推。或者,您可以创建一个NumberFragment
类,并使用十五个不同的实例来显示十五个不同的数字:
public class NumberFragment extends Fragment {
public static NumberFragment newInstance(int number) {
Bundle args = new Bundle();
args.putInt("number", number);
NumberFragment fragment = new NumberFragment();
fragment.setArguments(args);
return fragment;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View root = inflater.inflate(R.layout.number_fragment, container, false);
int number = getArguments().getInt("number");
String numberText = String.valueOf(number);
TextView numberView = root.findViewById(R.id.numberView);
numberView.setText(numberText);
return root;
}
}
有了它,您的FragmentPagerAdapter
就非常简单:
public class MyAdapter extends FragmentPagerAdapter {
@Override
public Fragment getItem(int position) {
return NumberFragment.newInstance(position);
}
@Override
public int getCount() {
return 15;
}
}
这一概念甚至适用于更复杂的应用程序。只要ViewPager
的每个页面对其数据具有相同的结构,就可以通过将必要的配置传递给newInstance()
来创建单个片段
类的新实例
您还可以将此技术与为每个页面创建一个新的Fragment
子类的技术进行混合和匹配。也许你希望你的第一页和最后一页是独一无二的,但是中间的十三页基本上都是一样的。谢谢你的回答。嗯,我是android的初学者,那么在我的情况下这将如何工作呢?在每个页面上,我都必须显示一个带有相应单选按钮的新问题。我真的很困惑在哪里存储数据并在页面上相应地显示它。这取决于问题在应用程序中的表示方式。