是否可以在视图页面中多次使用一个片段?我正在尝试使用 ViewPager 构建动态更新的 UI。我想使用相同的设计,基本上是相同的片段,每个页面都有不同的数据,比如列表视图适配器。
问问题
6782 次
2 回答
5
您可以为 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 语句中需要的内容。
于 2012-11-17T15:37:06.917 回答
3
您误解了class
vs的概念object of class
。您的MyFragment.java
源代码定义了每次使用operator ( )实例化它class
时您变成“生物”的东西- 这会创建您的. 除非您故意阻止这种情况(即使用单例模式),否则您可以制作任意数量的蛋糕,同样您可以使用单一配方制作尽可能多的蛋糕。这也适用于片段。new
new MyFragment();
object
instance
class
instances
class
因此,只要您为每个页面创建单独 object
的(也就是说instance
),class
您就应该能够做您想做的事。
于 2012-11-17T16:28:45.220 回答