自定义ViewGroup使视图组中的视图可以滑动循环

时间:2013-08-30 12:03:35

标签: android android-viewpager

这意味着我希望自定义视图组中的视图可以像viewpager一样工作,但不同的是可以从最后一个滑动到第一个(向右滑动)或从第一个到最后一个滑动(向左滑动) 我曾尝试过以下方式。

  1. 设置类实现PageAdapter的getCount()方法如下:

    返回Integer.MAX_VALUE; 像https://stackoverflow.com/a/17424525/1872596之类的东西 但后来我得到了一些错误,设备锁定并在几分钟后解锁,ANR发生。

  2. 自定义viewpager源代码,但失败了。对于freashman来说,阅读大约4000行源代码太难了。
  3. 我希望任何人都可以帮助我,非常感谢。

1 个答案:

答案 0 :(得分:0)

ViewGroup延伸并覆盖dispatchDraw(),如果滚过滚动则绘制第一页/最后一页 它类似于:

protected void computeCirculate(Canvas canvas) {
    if (isAllowCirculate()) {
        canvas.save();
        canvas.translate(-getWidth() * getPageCount(), 0);
        drawPage(canvas, getPageCount() - 1);
        canvas.restore();

        canvas.save();
        canvas.translate(getWidth() * getPageCount(), 0);
        drawPage(canvas, 0);
        canvas.restore();
    }
}

更新:

请参阅我的github项目:Android_PagedView