【问题标题】:ViewPager: set a different padding for first and last pageViewPager:为第一页和最后一页设置不同的填充
【发布时间】:2017-03-27 05:50:53
【问题描述】:

我已经为我的 ViewPager 实现了“页面查看”功能:

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

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

如何为第一页和最后一页设置不同的填充?

【问题讨论】:

  • 我没有找到直接解决你问题的方法,但是你可以覆盖FragmentPagerAdapter中的getPageWidth并返回0.9f,视图将是ViewPager的90%宽度,但它只显示下一页(不是上一页),最后一页除外。
  • 不幸的是,我需要在可用时显示两个页面...
  • 你是怎么做到的?

标签: android android-viewpager margin padding


【解决方案1】:

我不得不解决同样的问题,我通过设置自定义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);
            }
        }
    });

【讨论】:

  • 最后一项的右边距小于第一项的左边距。为什么? ://
猜你喜欢
  • 1970-01-01
  • 2018-07-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多