問題タブ [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.
android - ViewPager2 OnApplyWindowInsetsListener が呼び出されない
ViewPager2
端から端まで移動するときにウィンドウのインセットを尊重する必要があるFragmentにFABがあります。OnApplyWindowInsetsListener
マージンを更新する FAB に を追加しています。古い を使用する場合、これは正常に機能しViewPager
ます。
に更新すると、最初は呼び出されないViewPager2
ようです。OnApplyWindowInsetsListener
しかし、私がActionMode
. 次に、リスナーが呼び出され、親 Fragment を離れるまで新しいマージンが使用されます。
問題を説明するためにデモ プロジェクトをフォークしました。https://github.com/hardysim/views-widgets-samples/tree/edge-to-edgeParallelNestedScrollingActivity
のブランチedge-to-edge
にある「ネストされた RecyclerViews を使用した ViewPager2」の例 ( ) を参照してください。
ここでは、ViewPager2 ページで使用される (ネストされた) に FAB を追加しRecyclerView
、Activity-UI をエッジ ツー エッジに設定しました (「参考文献」を参照View.goEdgeToEdge()
)。次に、FAB はナビゲーション バーの背後にあり、そのマージンを更新してウィンドウ インセットを追加する必要があります。
そして、これは機能していない場所です(ただし、古い では問題なく機能しますViewPager
)。
android - モーション レイアウトはウィンドウ インセットを適用しません
OnApplyWindowInsetsListener
モーション レイアウトは、リスナーで明示的にインセットを使用するにもかかわらず、ウィンドウ インセットを子に渡しません。
applyMotionScene
モーション レイアウトの属性が に設定されている場合、インセットが正しく適用されfalse
ます。
android - Android 11 - window.setDecorFitsSystemWindow でステータス バーとナビゲーション バーの背後に画面が表示されない
アプリを Android 11 に更新しようとしています。アプリの多くの画面は、StatusBar の背後にあるアプリ コンテンツを使用して設計されています。Gradle を Android 11 に更新し、Windows コードの更新を開始して、Android 11 デバイスでも制限なしの動作を取得しました。Activitiys onCreate メソッドで次のコードを使用して、Android 11 以前のデバイスで望ましい結果を達成しました。
を使用して、Android 11 で同じ無制限の動作を取得しようとしましたw.setDecorFitsSystemWindows(false);
フラグを使用する代わりに使用してみました。フラグを使用して true と false を渡し、フラグを設定する前後に設定しましたが、アプリのコンテンツの代わりに常に白いステータスとシステム ナビゲーション バーが表示されます。私が試したこと:
私のアプリはまだ Java コードwindow?.setDecorFitsSystemWindows(false)
です。Kotlin コードを使用する別のアプリで試してみましたが、問題なく動作しました。
ここで私が見逃していることや間違っていることを知っている人はいますか?
android - Android API レベル 30 setSystemBarsAppearance はテーマ データを上書きしません
Android 11 (API レベル 30) より前の
<item name="android:windowLightStatusBar">true</item>
テーマで設定し、コードでこれを (必要に応じて) 追加で変更していました。
ただし、Android-30 では新しい制御方法が追加されています。
しかし、私の問題は、これがテーマ セットの値を上書きできないことです。そのため、すべてをスタイルで行うか、すべてをコードで行う必要があります。
私の質問は、これがこのようになることを意図しているのか、それともどこかで何かが欠けているのでしょうか?