我已经为ViewPager实现了“页面浏览”功能:

mPager.setClipToPadding(false);
mPager.setPadding(120, 0, 120, 0);
mPager.setPageMargin(60);

这样做,我可以查看上一页和下一页的一部分。但是第一页和最后一页显示较大的空白,因为在此方向上没有其他页面可以显示。

如何为首页和末页设置不同的填充?

最佳答案

我必须解决相同的问题,并通过设置自定义PageTransformer来解决。在第一个和最后一个位置时,我实际上会翻译页面。让我知道这是否适合您。

mPager.setClipToPadding(false);
mPager.setPadding(120, 0, 120, 0);
mPager.setPageMargin(60);
mPager.setPageTransformer(false, new ViewPager.PageTransformer() {
        @Override public void transformPage(View page, float position) {
            if (mPager.getCurrentItem() == 0) {
                page.setTranslationX(-120);
            } else if (mPager.getCurrentItem() == adapter.getCount() - 1) {
                page.setTranslationX(120);
            } else {
                page.setTranslationX(0);
            }
        }
    });

10-06 12:24