2012-06-29 6 views
19

Я использую ActionBarSherlock, и пытается скрыть/показать ActionBar для полноэкранных изображений, используя: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); 
} 

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

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

ответ

17

Я использую накладку ActionBar

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

он не показывает анимацию, когда show()/hide() называется.

+4

Что такое оверлейный ActionBar? Можете ли вы предоставить дополнительную информацию? – greg7gkb

+1

'requestWindowFeature (com.actionbarsherlock.view.Window.FEATURE_ACTION_BAR_OVERLAY);', – Salw

+2

Официальная документация по теме: http://developer.android.com/reference/android/view/Window.html#FEATURE_ACTION_BAR_OVERLAY –

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