AppCompatActivity 全屏

来源:互联网 发布:淘宝店铺美工主管职责 编辑:程序博客网 时间:2024/05/01 05:03

1添加主题样式

<!-- Base application theme. --><style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">    <!-- Customize your theme here. -->    <item name="colorPrimary">@color/colorPrimary</item>    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>    <item name="colorAccent">@color/colorAccent</item></style><!-- 全屏 actionbar切换界面 --><style name="FullscreenTheme" parent="AppTheme">    <item name="android:actionBarStyle">@style/FullscreenActionBarStyle</item>    <item name="android:windowActionBarOverlay">true</item>    <item name="android:windowBackground">@null</item>    <item name="metaButtonBarStyle">?android:attr/buttonBarStyle</item>    <item name="metaButtonBarButtonStyle">?android:attr/buttonBarButtonStyle</item></style><!-- 全屏样式 欢迎界面--><style name="FullscreenActionBarStyle" parent="Theme.AppCompat.Light.NoActionBar">    <item name="android:background">@color/black_overlay</item>    <item name="android:windowFullscreen">true</item></style>

2. manifest 使用


<application    android:allowBackup="true"    android:icon="@mipmap/ic_launcher"    android:label="@string/app_name"    android:supportsRtl="true"    android:theme="@style/AppTheme">    <activity        android:name=".common.welcome.SplashActivity"        android:configChanges="orientation|keyboardHidden|screenSize"        android:label="@string/app_name"        android:theme="@style/FullscreenActionBarStyle">        <intent-filter>            <action android:name="android.intent.action.MAIN" />            <category android:name="android.intent.category.LAUNCHER" />        </intent-filter>    </activity></application>

3. activity 接切换


// Set up the user interaction to manually show or hide the system UI.mContentView.setOnClickListener(new View.OnClickListener() {    @Override    public void onClick(View view) {        toggle();    }});// Upon interacting with UI controls, delay any scheduled hide()// operations to prevent the jarring behavior of controls going away// while interacting with the UI.findViewById(R.id.dummy_button).setOnTouchListener(mDelayHideTouchListener);
/** * Touch listener to use for in-layout UI controls to delay hiding the * system UI. This is to prevent the jarring behavior of controls going away * while interacting with activity UI. */private final View.OnTouchListener mDelayHideTouchListener = new View.OnTouchListener() {    @Override    public boolean onTouch(View view, MotionEvent motionEvent) {        if (AUTO_HIDE) {            delayedHide(AUTO_HIDE_DELAY_MILLIS);        }        return false;    }};
private void toggle() {    if (mVisible) {        hide();    } else {        show();    }}
private void hide() {    // Hide UI first    ActionBar actionBar = getSupportActionBar();    if (actionBar != null) {        actionBar.hide();    }    mControlsView.setVisibility(View.GONE);    mVisible = false;    // Schedule a runnable to remove the status and navigation bar after a delay    mHideHandler.removeCallbacks(mShowPart2Runnable);    mHideHandler.postDelayed(mHidePart2Runnable, UI_ANIMATION_DELAY);}@SuppressLint("InlinedApi")private void show() {    // Show the system bar    mContentView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN            | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION);    mVisible = true;    // Schedule a runnable to display UI elements after a delay    mHideHandler.removeCallbacks(mHidePart2Runnable);    mHideHandler.postDelayed(mShowPart2Runnable, UI_ANIMATION_DELAY);}
private final Runnable mHidePart2Runnable = new Runnable() {    @SuppressLint("InlinedApi")    @Override    public void run() {        // Delayed removal of status and navigation bar        // Note that some of these constants are new as of API 16 (Jelly Bean)        // and API 19 (KitKat). It is safe to use them, as they are inlined        // at compile-time and do nothing on earlier devices.        mContentView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE                | View.SYSTEM_UI_FLAG_FULLSCREEN                | View.SYSTEM_UI_FLAG_LAYOUT_STABLE                | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY                | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION                | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);    }};private View mControlsView;private final Runnable mShowPart2Runnable = new Runnable() {    @Override    public void run() {        // Delayed display of UI elements        ActionBar actionBar = getSupportActionBar();        if (actionBar != null) {            actionBar.show();        }        mControlsView.setVisibility(View.VISIBLE);    }};

0 0