android - 查看页面 : set a different padding for first and last page

标签 android android-viewpager margin padding

我已经为我的 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);
            }
        }
    });

关于android - 查看页面 : set a different padding for first and last page,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40574401/

相关文章:

Android - Activity 导航

android - addview 的位置常量是多少

android - 在运行时更改构建变体

android - 从数字选择器中删除选择

android - SwipeRefreshLayout 干扰 ViewPager 内的 GridView

java - 使用 ViewPager 在选项卡之间切换时,RecyclerView 一次自动滚动一项

android - 如何为每个选项卡刷新 ViewPager?

css - 为什么要在 CSS 中引入 margin collapse 规则?

CSS - 溢出滚动和右填充被忽略

html - 李之间的空白无处不在