17

我尝试从 xml 和以编程方式设置海拔高度。但没有任何效果。在此处输入图像描述

4

5 回答 5

35

仅当您在 BottomNavigationView 中将白色设置为 android:background 时才有效。

这是我的代码,它正在工作:

<android.support.design.widget.BottomNavigationView
    android:id="@+id/bottom_navigation"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom"
    android:background="@color/white"
    app:elevation="8dp"
    app:itemIconTint="@color/bottom_color_state"
    app:itemTextColor="@color/bottom_color_state"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintHorizontal_bias="0.52"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:menu="@menu/bottom_navigation_main" />
于 2017-02-24T15:53:29.130 回答
2

我得到了解决方案。您需要添加背景属性以及高程,否则它不会显示阴影。

于 2016-11-23T16:32:48.737 回答
1

对于那些感兴趣的人,我还设法使用背景可绘制来获得一些阴影。但是,我必须使用白色,否则它不起作用......

如果你想像我一样做角度,它会很有用。

可绘制/gnt_rounded_corners_shape.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
  <solid android:color="@android:color/white"/>

  <corners android:bottomRightRadius="0dp"
      android:bottomLeftRadius="0dp"
      android:topLeftRadius="16dp"
      android:topRightRadius="16dp" />
</shape>

和里面layout/main_activity.xml

    <com.google.android.material.bottomnavigation.BottomNavigationView
        android:id="@+id/navigation"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:background="@drawable/gnt_rounded_corners_shape"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:menu="@menu/bottom_nav_menu"
        android:elevation="8dp"
        />

结果 :

在此处输入图像描述

于 2020-01-13T12:47:19.707 回答
1

这是唯一对我有用的解决方案:

val background = bottomNavigation.background
if (background is MaterialShapeDrawable) {
    background.shadowCompatibilityMode = SHADOW_COMPAT_MODE_ALWAYS
}

如此处建议: https ://issuetracker.google.com/issues/124153644#comment2

于 2019-09-24T14:01:42.127 回答
0

如果您不使用CoordinateLayoutwith ,则可以使用orBottomNavigationBar包裹导航并将其设置为您想要的内容并设置为零。CardViewMaterialCardViewcardElevationcardCornerRadius

于 2020-05-05T03:18:54.317 回答