찾다

 >  Q&A  >  본문

android - ViewPager每次notifyDataSetChanged之后,所设置的PageTransformer显示就出问题?

第一次setPageTransformer之后可以正常使用,但是当notifyDataSetChanged之后,其显示就有问题。但是只要viewpager一滑动,PageTransformer的效果就有了。
正常情况下我设置的PageTransformer是这样的,两边没有显示的比较小,而当前位置的显示大:

但是当notifyDataSetChanged之后,显示效果成这个样子了:

不过只要有滑动,显示效果又没问题了。

这是个什么情况,要如何notifyDataSetChanged之后就可以显示PageTransformer的效果?
下面是我的PageTransformer的代码(个人感觉这个代码是没有问题的):

 private class Transformer implements ViewPager.PageTransformer {

        private final float MIN_SCALE = 0.8f;
        @Override
        public void transformPage(View page, float position) {
            if(position >= -1 && position <= 1) {
                page.setScaleX(1.0f - Math.abs(position) * (1 - MIN_SCALE));
                page.setScaleY(1.0f - Math.abs(position) * (1 - MIN_SCALE));
            } else {
                page.setScaleX(MIN_SCALE);
                page.setScaleY(MIN_SCALE);
            }
        }
    }
怪我咯怪我咯2772일 전965

모든 응답(5)나는 대답할 것이다

  • 怪我咯

    怪我咯2017-04-17 17:01:55

    저는 문제 없습니다. DataSetChanged를 어떻게 알렸나요?

    회신하다
    0
  • PHPz

    PHPz2017-04-17 17:01:55

    원래 포스터로 문제가 해결되었나요?

    회신하다
    0
  • ringa_lee

    ringa_lee2017-04-17 17:01:55

    포스터 문제는 해결됐나요? 저도 마찬가지에요

    회신하다
    0
  • 高洛峰

    高洛峰2017-04-17 17:01:55

    원래 포스터로 문제가 해결되었나요? 지금도 이 문제에 직면하고 있습니다. 다음 방법으로 해결하면 어리석은 느낌
    mViewPager.setCurrentItem(1);
    mViewPager.setCurrentItem(0);
    mViewPager.invalidate();

    회신하다
    0
  • 阿神

    阿神2017-04-17 17:01:55

    리셋어댑터

    회신하다
    0
  • 취소회신하다