Activity flashes/blink 换帧时

Activity flashes/blink when changing frames

我有一个 viewpager,它工作得很好,但是当我把它添加到监听器时 OnPageSelected() mViewBottomBar.setVisibility(View.GONE);闪烁,mViewBottomBar是viewpager外的actvitiy布局的视图,这两个在相对布局内。

它闪烁是因为 View.GONE 将底栏的宽度和高度设置为 0。UI 之后需要更新,这就是您看到闪烁屏幕的原因。要解决此问题,请使用动画来隐藏底部栏并在动画结束时调用 View.GONE,这将允许平滑过渡而不会闪烁。

示例:

TranslateAnimation animation = new TranslateAnimation(
        TranslateAnimation.ABSOLUTE, 0,
        TranslateAnimation.ABSOLUTE, 0,
        TranslateAnimation.ABSOLUTE, 0,
        TranslateAnimation.ABSOLUTE, 100);
animation.setDuration(200);
animation.setFillAfter(true);

animation.setAnimationListener(new Animation.AnimationListener() 
{
    @Override
    public void onAnimationStart(Animation animation)
    {

    }

    @Override
    public void onAnimationEnd(Animation animation)
    {
        mViewBottomBar.setVisibility(View.GONE);
    }

    @Override
    public void onAnimationRepeat(Animation animation)
    {

    }
});

mViewBottomBar.startAnimation(animation);