在ViewPager或PagerAdapter中动态更改PagerIndicator的计数

时间:2016-09-01 08:33:46

标签: android android-viewpager android-adapter viewpagerindicator

enter image description here

我想要的是:

  1. 当页面宽度为一半时,底部圆圈指示符的数量必须是页数的一半。

  2. 当页面宽度已满时,底部圆圈指示符的数量必须与页数一样多。

  3. 另外,还有另一个请求:

    1. 当页面宽度为一半时,我可以在单个滚动中滚动两页吗?
    2. ,当页面宽度已满时,在单个滚动中仅滚动一页?
    3. 页面宽度由PagerAdapter#getPageWidth()

      获取

      任何人都可以为此提供完美的解决方案吗?没有制作两个布局文件或两个适配器?

      这是我为实现基于GIF的活动而开发的完整源代码。

      将接受问题改进。

      https://github.com/raghavsatyadev/DemoPort

1 个答案:

答案 0 :(得分:1)

在我看来,这种情况下的最佳做法是将视图[s]绑定到适配器中的视图组。在您的适配器中,您应该创建一个线性布局并添加任意数量的子项

public Object instantiateItem(ViewGroup container, int position) { 
   LinearLayout ll = new LinearLayout(context);
   LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(0,MATCH_PART);
   param.weight = 1.0f;

   for (int i; i < getChildrenInPage() ; i++) {
      MyView myView = View.inflate(context, R.layout.my_layout, null)
      myView.bind(getDataForPosition(getChildrenInPage()*position + i))
      ll.add(myView, params));
   }
}