更换框架时,活动会闪烁/闪烁

时间:2015-02-05 19:33:17

标签: android android-fragments android-viewpager

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

1 个答案:

答案 0 :(得分:3)

它闪烁,因为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);