ActionBar или ActionBarSherlock -Плавное скрытие/отображение панели действий

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

getSupportActionBar.hide();

и

getSupportActionBar.show();

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

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

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

if( shouldRender )
{
 ...

  getSupportActionBar().hide();

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

  getSupportActionBar().show();

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

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

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

19
задан Community 23 May 2017 в 12:09
поделиться