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

Rag*_*dev 6 android android-adapter android-viewpager viewpagerindicator

在此输入图像描述

我想要的是:

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

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

还有另外一个要求:

  1. 当页面宽度为一半时,我可以在单个滚动中滚动两页吗?
  2. 当页面宽度已满时,在单个滚动中只滚动一页?

页面宽度由PagerAdapter#getPageWidth()获取

谁能为此提供完美的解决方案?没有制作两个布局文件或两个适配器?

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

问题改进将被接受.

https://github.com/raghavsatyadev/DemoPort

Kir*_*kov 1

在我看来,这种情况下的最佳实践是将视图绑定到适配器中的视图组。在你的适配器中,你应该创建一个线性布局并添加尽可能多的子元素

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));
   }
}
Run Code Online (Sandbox Code Playgroud)