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