問題タブ [windowinsets]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
4116 参照

android - OnApplyWindowInsetsListener は、常に 0 である systemWindowInsetBottom を提供します

systemWindowInsetBottom と stableInsetBottom はどちらも常に 0 です

バックグラウンド テクスチャを持つアクティビティがあり、FLAG_LAYOUT_NO_LIMITS を使用して、その背景をステータス バーとナビゲーション バーの背後に移動させています。しかし、ビューの他のコンテンツがこれらのシステム UI コンポーネントの背後にあるのは望ましくありません。

最初resources.getIdentifier("navigation_bar_height", "dimen", "android")はナビゲーションバーの高さを取得するために使用することを考えましたが、それはナビゲーションバーのデフォルトの高さであるため、ユーザーがナビゲーションバーを非表示にしているデバイスでは機能しません。(サムスンのデバイス)

次に、 WindowInsets と android:fitsSystemWindows="true" について知りました

ステータス バーでは機能しますが、ナビゲーション バーでは機能しません。

私の活動で

そして私のレイアウト

API 28 を実行している Nexus 5x エミュレーターのスクリーンショットの例。API 26 を実行している実際のデバイスで同じ結果が得られます。

サンプル画像

ナビゲーション バーが存在する場合、その実際のサイズを取得するにはどうすればよいですか?

0 投票する
7 に答える
6021 参照

android - NULL ウィンドウ インセット

DisplayCutout を取得しようとしています

java.lang.NullPointerException: null オブジェクト参照で仮想メソッド 'android.view.DisplayCutout android.view.WindowInsets.getDisplayCutout()' を呼び出そうとしています

これが私のコードです: