【问题标题】:Android Bottom Navigation Bar with drop shadow带有阴影的 Android 底部导航栏
【发布时间】:2017-01-14 13:57:06
【问题描述】:

我正在使用 Google's support design library v25.1.0 在 Android 应用中实现 Bottom Navigation Bar。有什么方法可以添加阴影效果,就像当前的 Android 原生 Google Photos 应用一样?

【问题讨论】:

    标签: android android-support-library android-support-design android-bottomnav


    【解决方案1】:

    您可以使用简单的 View 及其背景在底栏上方绘制自己的阴影:

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

    可绘制/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>
    

    此外,如果使用这种方法,也不会出现兼容性问题。

    【讨论】:

      【解决方案2】:

      您可以使用高程为任何视图添加阴影

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

      更多信息请参考this

      【讨论】:

      • 在我的项目中不起作用:“属性 'elevation' 仅用于 API 级别 21 及更高级别(当前最小值为 16)”,如果它确实有效,将使用它。
      【解决方案3】:

      对于使用带有底部导航栏(或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

      【讨论】:

        【解决方案4】:

        对于那些使用 Material 组件的人 - 这已由 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",否则阴影将被覆盖。

        【讨论】:

        • 任何文档链接?
        猜你喜欢
        • 2016-10-28
        • 1970-01-01
        • 2020-11-16
        • 1970-01-01
        • 2019-06-27
        • 2020-07-13
        • 2020-07-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多