Android底部菜单栏显示与隐藏

Android底部菜单栏显示与隐藏

源码下载:

https://download.csdn.net/download/qq_31939617/10508420 下载

MainActivity.class

package com.example.sz.bottomtest;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Build;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {
    Button btn;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //隐藏底部菜单栏
        secondHide();
        setContentView(R.layout.activity_main);

        btn = findViewById(R.id.btn);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //取消发送,显示底部菜单栏
                mHandler.removeMessages(COLLAPSE_STATUS_BAR);
                showBottomUIMenu();
            }
        });
    }

    //延时毫秒数
    private static final long COLLAPSE_SB_PERIOD = 100;
    //id
    private static final int COLLAPSE_STATUS_BAR = 1000;
    @SuppressLint("HandlerLeak")
    private Handler mHandler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            switch (msg.what) {
                case COLLAPSE_STATUS_BAR:
                    collapse(MainActivity.this, true);
                    sendEmptyMessageDelayed(COLLAPSE_STATUS_BAR, COLLAPSE_SB_PERIOD);
                    break;
                default:
                    break;
            }
        }

    };

    public void secondHide() {
        int flags = getWindow().getDecorView().getSystemUiVisibility();
        getWindow().getDecorView().setSystemUiVisibility(flags | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                | View.SYSTEM_UI_FLAG_FULLSCREEN
                | View.SYSTEM_UI_FLAG_IMMERSIVE);

        mHandler.sendEmptyMessageDelayed(COLLAPSE_STATUS_BAR, COLLAPSE_SB_PERIOD);

    }

    public static void collapse(Activity activity, boolean enable) {
        Window window = activity.getWindow();
        if (enable) {
            WindowManager.LayoutParams attr = window.getAttributes();
            window.setAttributes(attr);
            window.addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
            int flags = window.getDecorView().getSystemUiVisibility();
            window.getDecorView().setSystemUiVisibility(flags | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                    | View.SYSTEM_UI_FLAG_FULLSCREEN
                    | View.SYSTEM_UI_FLAG_IMMERSIVE);

            attr.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN;
        } else {
            WindowManager.LayoutParams attr = window.getAttributes();
            attr.flags &= (WindowManager.LayoutParams.FLAG_FULLSCREEN);
            window.setAttributes(attr);
            window.clearFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
        }
    }


    /**
     * 显示菜单栏
     * 如果底部的bar 隐藏就显示
     */
    protected void showBottomUIMenu() {
        int flags;
        int curApiVersion = android.os.Build.VERSION.SDK_INT;
        // This work only for android 4.4+
        if (curApiVersion >= Build.VERSION_CODES.KITKAT) {
            // This work only for android 4.4+
            // hide navigation bar permanently in android activity
            // touch the screen, the navigation bar will not show
            flags = View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                    | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                    | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION;

        } else {
            // touch the screen, the navigation bar will show
            flags = View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                    | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                    | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION;
        }

        // must be executed in main thread :)
        getWindow().getDecorView().setSystemUiVisibility(flags);
    }

}

源码下载:

https://download.csdn.net/download/qq_31939617/10508420 下载

猜你喜欢

转载自blog.csdn.net/qq_31939617/article/details/80858902