【问题标题】:Android ViewPager working with dateAndroid ViewPager 处理日期
【发布时间】:2013-11-01 16:47:29
【问题描述】:

我在我的测试 android-app 中使用 viewpager。

我想使用 3 个包含动态内容的片段。我可以进行“无休止”的滚动吗?因为我想像这样使用日期:2fragment - (currentdate||date), 1fragment - (date-1), 3fragment - (date+1)

解决此问题的最佳方法是什么?

【问题讨论】:

  • 如果您使用 FragmentStatePagerAdapter 并在 getItem 中动态创建片段,那么只需增加 getCount 的值并在您的 FragmentStatePagerAdapter 变量上调用 notifyDataSetChanged 即可。
  • 我认为他的意思是片段内的动态内容?不是很清楚。
  • @MartínMarconcini 是的,你是对的
  • 值得一提的是,“无限”滚动与 ViewPager 或 Fragments 本身无关。
  • @MartínMarconcini 那么,我该怎么办?

标签: android


【解决方案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
}
  1. 您还必须覆盖 getCount…

    @Override
    public int getCount() {
        return 3; // you only have three hardcoded frags
    }
    

然后在 YourFragmentWithTheList.java 中,您必须从 arguments 获取日期并执行通常的 ListFragment 操作(创建列表、初始化适配器、在底部加载更多内容等)。您有日期来获取每个数据的正确数据。因此,您的 Fragment 必须是虚拟的,并期望日期出现在参数中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多