我們的app常常需要更多的空間來實現我們的畫面設計
但手機就這麼一個大小該怎麼辦呢?
讓我們來看看全螢幕的作法吧
這裡有兩個方法,不過也可同時使用
其實滿簡單的
在Style.xml設定自己的Activity Theme
<resources>
<style name="myTheme"
parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark
</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:windowNoTitle">true</item>
<item name="windowActionBar">false</item>
</style>
</resources>
第一句是extends NoActionBar的Theme
接下來的三句是顏色的設定
後面的兩句就是我們的主要重點了
以取消Title 和 ActionBar 來達到全螢幕的目的
接下來再AndroidManifest.xml中加入
<activity android:name=".ui.MainActivity"
android:theme="@style/myTheme"/>
設定Activity 的 Theme 為剛剛我們增加的myTheme
此為方法一,但會有狀態的時間條
方法二為在Activity的程式碼中加入這段
@Override
protected void onResume() {
super.onResume();
getWindow().getDecorView().setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE);
}
大家如果不知道意思
我們可以增加或減少某項Flag再run出來看變化就會懂了
以下為各Flag的作用
View.SYSTEM_UI_FLAG_LAYOUT_STABLE API 16
保持整个View稳定, 常和控制System UI悬浮, 隐藏的Flags共用, 使View不会因为System UI的变化而重新layout
View.SYSTEM_UI_FLAG_FULLSCREEN API 16
隱藏狀態列
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN API 16
view延伸到狀態列區域,而狀態列會浮在view上方
View.SYSTEM_UI_FLAG_HIDE_NAVIGATION API 14
隱藏導航欄
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION API 16
view延伸到導航欄區域,而導航欄會浮在view上方
View.SYSTEM_UI_FLAG_IMMERSIVE API 19
沉浸模式,隱藏狀態列和導航欄,並在第一次會彈泡提醒,且在狀態列滑動可以叫出狀態列
需和下面兩個Flag其一或同時使用才能生效
1、View.SYSTEM_UI_FLAG_FULLSCREE
2、View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
(不過系統會清除之前設定的View.SYSTEM_UI_FLAG_FULLSCREEN & View.SYSTEM_UI_FLAG_HIDE_NAVIGATION)
View.SYSTEM_UI_FLAG_IMMERSIVE_STIKY API 19
與上一個的區別就是
系統不會清除之前設定的View.SYSTEM_UI_FLAG_FULLSCREEN & View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
而是過一段時間後再次隱藏
點我看官網資料
參考資料:
https://developer.android.com/training/system-ui/immersive.html#sticky
留言列表