Como ocultar y mostrar la ActionBar en Android
Para ocultar la ActionBar
getSupportActionBar().hide()
Para mostrar la ActionBar
getSupportActionBar().show()
Determinar si la ActionBar está visible
getSupportActionBar().isShowing()
Efecto toggle para mostrar o ocultar
if (getSupportActionBar() != null) {
if (getSupportActionBar().isShowing()) {
getSupportActionBar().hide();
} else {
getSupportActionBar().show();
}
}
ocultar y mostrar la ActionBar con animación por defecto
en xml asignar lar propiedad android:animateLayoutChanges
en el AppBar
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay"
android:animateLayoutChanges="true">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay"
/>
</android.support.design.widget.AppBarLayout>
Ocultar la actionbar automáticamente despues de un tiempo determinado y volver a mostrarla cuando el usuario interactua con la UI.
private MyCountDownTimer countDownTimer;
private boolean dispatchTouchEventOnce;
@Override
protected void onCreate(Bundle savedInstanceState) {
....
countDownTimer = new MyCountDownTimer(8 * 1000, 1 * 1000);
countDownTimer.start();
....
}
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
super.dispatchTouchEvent(ev);
if(!dispatchTouchEventOnce) {
ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
if (!actionBar.isShowing()) {
actionBar.show();
Log.i(TAG, "Show ActionBar: ");
}
countDownTimer.cancel();
countDownTimer.start();
}
dispatchTouchEventOnce = true;
}else{
dispatchTouchEventOnce = false;
}
return true;
}
@Override
protected void onDestroy() {
super.onDestroy();
countDownTimer.cancel();
}
Sublcase MyCountDownTimer
private class MyCountDownTimer extends CountDownTimer {
MyCountDownTimer(long startTime, long interval) {
super(startTime, interval);
}
@Override
public void onFinish() {
//DO WHATEVER YOU WANT HERE
Log.d(TAG, "MyCountDownTimer onFinish: ");
if (getSupportActionBar() != null) {
if (getSupportActionBar().isShowing()) {
getSupportActionBar().hide();
Log.i(TAG, "Hide ActionBar: ");
}
}
}
@Override
public void onTick(long millisUntilFinished) {
Log.d(TAG, "onTick: ");
}
}