我在我的测试 android-app 中使用 viewpager。
我想使用 3 个带有动态内容的片段。我可以进行“无休止”的滚动吗?因为我想像这样使用日期:2fragment - (currentdate||date), 1fragment - (date-1), 3fragment - (date+1)
解决这个问题的最佳方法是什么?
我在我的测试 android-app 中使用 viewpager。
我想使用 3 个带有动态内容的片段。我可以进行“无休止”的滚动吗?因为我想像这样使用日期:2fragment - (currentdate||date), 1fragment - (date-1), 3fragment - (date+1)
解决这个问题的最佳方法是什么?
创建自定义 FragmentStatePagerAdapter。覆盖(强制)getItem 方法:
@Override
public void getItem(int position){
switch (position) {
case 0:
// create your dates for the leftmost fragment
date1 == xxx;
date2 == yyy;
// add it to a Bundle arg
Bundle bundle = new Bundle();
bundle.add blah blah
// Create your Fragment
Fragment fragment = new YourFragmentWithTheList();
fragment.setArgs(bundle);
return fragment;
case 1:
// create your dates for the center fragment
[ do the same as above ]
return fragment;
case 2:
// now your rightmost fragment.
same as above…
}
return null
}
您还必须覆盖 getCount...</p>
@Override
public int getCount() {
return 3; // you only have three hardcoded frags
}
然后在 YourFragmentWithTheList.java 中,您必须从参数中获取日期并执行通常的 ListFragment 操作(创建列表、初始化适配器、在底部加载更多内容等)。您有日期来获取每个数据的正确数据。因此,您的 Fragment 必须是虚拟的,并期望日期出现在参数中。