web-dev-qa-db-ja.com

Androidドロップシャドウ付きの下部ナビゲーションバー

ボトムナビゲーションバー in Androidアプリを使用して Googleのサポートデザインライブラリv25.1. を実装しています。ドロップシャドウを追加する方法はありますか?現在のAndroidネイティブGoogleフォトアプリと同じですか?

enter image description here

17
Jan Slominski

シンプルなビューとその背景を使用して、下のバーのすぐ上に独自の影を描画できます。

<View
    Android:layout_width="match_parent"
    Android:layout_height="4dp"
    Android:layout_above="@id/bottom_bar"
    Android:background="@drawable/shadow"/>

drawable/shadow.xml:

<shape xmlns:Android="http://schemas.Android.com/apk/res/Android">
    <gradient
        Android:startColor="#1F000000"
        Android:endColor="@Android:color/transparent"
        Android:angle="90" />
</shape>

また、このアプローチを使用する場合、互換性の問題はありません。

75

標高を使用して、任意のビューに影を追加できます

<TextView
Android:id="@+id/myview"
...
Android:elevation="2dp"

Android:background="@drawable/myrect" />

詳細については this を参照してください

4
SGR

マテリアルコンポーネントを使用している場合-これはcom.google.Android.material:material:1.1.0-alpha09によって修正されました。

1.1.0-alpha05以降で使用可能: https://github.com/material-components/material-components-Android/releases/tag/1.1.0-alpha05

Android:elevation="4dp"を使用して、標高の影を設定します。

また、メインレイアウトでclipChildren="false"を設定することを忘れないでください。そうしないと、シャドウが上書きされます。

2
guy.gc

ボトムナビゲーションバー(またはBottomAppBar)でCoordinatorLayoutを使用している場合、以下を使用してバーの上に影を付けることができます。

<View
    Android:layout_width="match_parent"
    Android:layout_height="4dp"
    Android:background="@drawable/shadow"
    app:layout_anchor="@+id/toolbar"
    app:layout_anchorGravity="top"/>

明らかに、@+id/toolbar下部ナビゲーションバーのID

2
Andy S