5

完全に透明なアクションとステータス バーと不透明なナビゲーション バーを持つテーマを実装しようとしています。基本的には、 Google の Material Design ウェブサイトにある例に似たものです。

ここに画像の説明を入力

これは、かなり近いテーマを作成するために私が書いた XML コードです。

 <style name="MyTheme.Transparent" parent="android:Theme.Material.Light.DarkActionBar">
    <item name="android:windowTranslucentStatus">true</item>
    <item name="android:windowTranslucentNavigation">false</item>

    <item name="android:colorPrimary">@android:color/transparent</item>
    <item name="android:colorPrimaryDark">@android:color/transparent</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowActionBarOverlay">true</item>

    <item name="android:statusBarColor">@android:color/transparent</item>
</style>

ただし、この画像でわかるように、コンテンツは下部のナビゲーション バーの後ろに表示されます。これは、ユーザーが垂直にスクロールすることが期待されるデザインでは問題ありませんが、私はそうしたくありません! スクロールせずにすべてのコンテンツが収まるようにします。

簡単に追加できると思いました

android:layout_alignParentBottom="true"

XML レイアウトの一番下のビューで、それを押し上げます。しかし、それはうまくいきません!代わりに、ナビゲーション バーの下部に配置されますが、これは私が望むものではありません。上部に配置する必要があります。

次に、下部から何らかのマージンオフセットを実行できると考えましたが、ナビゲーションバーには ?attr/actionBarSize に似た属性が存在しないようです。任意の値を選択することは避けたいと思います (特にこれらは方向によって異なり、将来変更される可能性があるため)

テーマでは、追加できることは承知しています-

<item name="android:fitsSystemWindows">true</item>

これを達成する方法はどれですか (少なくともナビゲーション バーの場合)。ただし、画像はアクション バーの下にプッシュされます。ナビゲーションバーまたはアクションバーのいずれかで望ましい結果を得ることができるようですが、両方を同時に得ることはできません。Google は人々がこれを行うことさえ望んでいないかのようですが、Material Web サイトでこの例を示しています。

これらの問題を回避する方法はありますか?

4

0 に答える 0