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