2015-02-05 5 views
0

У меня есть просмотрщик, и он работает нормально, но когда я добавляю это слушателю OnPageSelected() mViewBottomBar.setVisibility (View.GONE); он мигает, mViewBottomBar - это вид формы actvitiy, который находится вне viewpager, эти два находятся в относительной компоновке.Активность мигает/мигает при смене кадров

ответ

3

Он мигает, потому что View.GONE устанавливает ширину и высоту нижней панели до 0. Интерфейс пользователя должен обновляться после этого, поэтому вы видите мигающий экран. Чтобы устранить эту проблему, используйте анимацию, чтобы скрыть нижнюю панель и вызвать 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); 
+0

Но это происходит даже тогда, когда элемент не виден, и у меня есть следующее условие, если (mViewBottomBar.getVisibility() == View.VISIBLE) { mViewBottomBar.setVisibility (View.GONE); } –

+0

Какой товар? Будьте более ясны, пожалуйста. См. Обновленный ответ с помощью анимации. Посмотрите, работает ли это. – domi

+0

спасибо, что сделал решила моя проблема. –

Смежные вопросы