3

アプリを Android 11 に更新しようとしています。アプリの多くの画面は、StatusBar の背後にあるアプリ コンテンツを使用して設計されています。Gradle を Android 11 に更新し、Windows コードの更新を開始して、Android 11 デバイスでも制限なしの動作を取得しました。Activitiys onCreate メソッドで次のコードを使用して、Android 11 以前のデバイスで望ましい結果を達成しました。

Window w = getWindow();
w.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);

を使用して、Android 11 で同じ無制限の動作を取得しようとしましたw.setDecorFitsSystemWindows(false);

フラグを使用する代わりに使用してみました。フラグを使用して true と false を渡し、フラグを設定する前後に設定しましたが、アプリのコンテンツの代わりに常に白いステータスとシステム ナビゲーション バーが表示されます。私が試したこと:

Window window = getWindow();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
    window.setDecorFitsSystemWindows(false); //also tried with true
} else {
    window.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
}

//or
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
    window.setDecorFitsSystemWindows(false); //also tried with true
} 
window.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);

//or
window.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
    window.setDecorFitsSystemWindows(false); //also tried with true
} 

私のアプリはまだ Java コードwindow?.setDecorFitsSystemWindows(false)です。Kotlin コードを使用する別のアプリで試してみましたが、問題なく動作しました。

ここで私が見逃していることや間違っていることを知っている人はいますか?

4

1 に答える 1