Skip to content

Instantly share code, notes, and snippets.

@webserveis
Last active March 21, 2017 12:12
Show Gist options
  • Save webserveis/a1c755018c94362f305e2ad723d6cef7 to your computer and use it in GitHub Desktop.
Save webserveis/a1c755018c94362f305e2ad723d6cef7 to your computer and use it in GitHub Desktop.
Ocultar y mostrar la ActionBar en Android

Como ocultar y mostrar la ActionBar en Android

Ocultar y Mostrar

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();
    }
}

Con animación

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 automáticamete la ActionBar despues de un tiempo

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: ");
        }

    }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment