視窗相關

      在〈視窗相關〉中尚無留言

取消狀態列及導航列

Android 11需使用getWindow().insetsController取得WindowInsetsController物件controller,然後再使用controller.hide()設定螢幕要隱藏的地方。

WindowInsets.Type.statusBars()為最上方的狀態列,值為1
WindowInsets.Type.navigationBars()為最下方的虛擬按鈕(導航列),值為2

Android 10及以下,就必需使用舊的方法

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {//Android11
var controller: WindowInsetsController? = getWindow().insetsController
controller?.hide(
WindowInsets.Type.statusBars()+
WindowInsets.Type.navigationBars()
)
}
else{//Android10及以下
@Suppress("DEPRECATION")
window.setFlags(
WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN
)
}
}

取消視窗title

在AndroidManifest.xml加入藍色的Theme。
另外screenOrientaiton為設定螢幕的方向。

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.AppCompat.Light.NoActionBar">
<activity android:name=".MainActivity"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>

取消休眠

如果不想讓系統進入 suspend (休眠)狀態,請於 OnCreate()方法新增如下

window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)

或是在 Layout 新增如下藍色部份

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width = "match_parent"
    android:layout_height = "match_parent"
    android:keepScreenOn = "true">
 ... 
</RelativeLayout>

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *