边缘动画是否缓慢



我想在ViewPager滚动时移动视图。我在视图寻呼机中找到了滚动监听器,参数为positionOffset,我用它来调整我想要移动的视图的左边距。

它工作,但滚动不再平滑。如果我把滚动收听者评论掉,它又很流畅了。我正在制作动画的视图非常简单——只有一个素色的小正方形。requestLayout()调用仅在此视图上完成。代码:

pager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
    @Override
    public void onPageSelected(int position) {
    }
    @Override
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
        if (positionOffset != 0 || (positionOffset == 0 && position == 0)) {
            pars.leftMargin = (int)(scrollablePart * positionOffset);
            tabBG.requestLayout();
        }
    }
    @Override
    public void onPageScrollStateChanged(int state) {
    }
});

我不知道是什么问题,我有另一个地方有一个视图,我用类似的方式设置了动画(根据一个-而不是寻呼机滑块调整边距),而且它很平滑。我还见过一个应用程序,它可以根据寻呼机的滚动动态调整一些视图的位置,而且非常流畅。

知道吗?提前感谢!

任何涉及requestLayout()的动画都会很慢。如果您只想移动视图,请使用TranslateAnimationView.offsetLeftAndRight()View.setTranslationX()等。不要使用requestLayout()或任何与布局相关的内容。

最新更新