Android Bottom Navigation Bar with drop shadow

前端 未结 4 1913
长情又很酷
长情又很酷 2020-12-05 04:55

I\'m implementing Bottom Navigation Bar in Android app using Google\'s support design library v25.1.0. Is there any way to add drop shadow effect, same as current Android na

相关标签:
4条回答
  • 2020-12-05 05:44

    You can draw your own shadow just above the bottom bar using simple View and its background:

    <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>
    

    Also, there are no compatibility issues if use this approach.

    0 讨论(0)
  • 2020-12-05 05:46

    You can use elevation to add shadows to any view

    <TextView
    android:id="@+id/myview"
    ...
    android:elevation="2dp"
    
    android:background="@drawable/myrect" />
    

    Refer this for more information

    0 讨论(0)
  • 2020-12-05 05:49

    For those using a CoordinatorLayout with the Bottom Navigation Bar (or BottomAppBar), you can use the following to attach a shadow above the bar:

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

    Obviously, replace the @+id/toolbar with the id of the Bottom Navigation Bar

    0 讨论(0)
  • 2020-12-05 05:59

    For those using Material Component - this has been fixed by com.google.android.material:material:1.1.0-alpha09.

    Available since 1.1.0-alpha05 : https://github.com/material-components/material-components-android/releases/tag/1.1.0-alpha05

    Use android:elevation="4dp" to set elevation shadow.

    Also, do not forget to set clipChildren="false" on your main layout, otherwise, the shadow will be overwritten.

    0 讨论(0)
提交回复
热议问题