Я использую 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, которые определяют его анимацию, но это не даст мне полного проникновения на платформу.