Подтвердить что ты не робот

ActionBar или ActionBarSherlock - плавно скрыть/показать ActionBar

Я использую ActionBarSherlock и пытаюсь скрыть/показать ActionBar для полноэкранных изображений, используя:

getSupportActionBar.hide();

и

getSupportActionBar.show();

Но это действительно нервный и неуклюжий. Есть ли способ сделать его более плавным или применить анимацию трансляции/непрозрачности?

При дальнейшей проверке источника ABS и наблюдении за его поведением, по-видимому, определяется как минимум минимальное количество анимации. То же самое нельзя сказать о стандартном ActionBar.

Просто для полноты, вот соответствующий код, который я вызываю из ImageView.click:

if( shouldRender )
{
  . . .

  getSupportActionBar().hide();

  getWindow().addFlags( WindowManager.LayoutParams.FLAG_FULLSCREEN );
}
else
{
  . . .

  getSupportActionBar().show();

  getWindow().clearFlags( WindowManager.LayoutParams.FLAG_FULLSCREEN );
}

Стоит отметить, что установка/очистка флагов также вызывает скачок, но гораздо менее заметный, поэтому я собирался решить его позже, если вообще.

Изменить: Это (создателем ABS), кажется, говорит, что это невозможно на родном ActionBar. Полагаю, я мог бы просто отредактировать два файла XML, которые определяют его анимацию, но это не даст мне полного проникновения на платформу.

4b9b3361

Ответ 1

Я использую overlay ActionBar

 requestWindowFeature(com.actionbarsherlock.view.Window.FEATURE_ACTION_BAR_OVERL‌​AY);

он не отображает анимацию при вызове show()/hide().