有没有办法向android Material View底部导航添加圆角?

pis*_*ama 3 android bottomnavigationview android-bottomnav material-components-android android-bottomnavigationview

我正在尝试为底部导航添加圆角,并且我尝试更改宽度和高度但它不起作用。我正在使用相对布局,宽度设置为“fill_parent”,高度设置为“warp_content”我有两个图标登录和注册,我希望整个导航都有圆角。我正在使用 Material Design 底部导航:

  <com.google.android.material.bottomnavigation.BottomNavigationView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/botttom_navigation"
    app:itemBackground="@android:color/darker_gray"
    app:itemTextColor="@drawable/selector"
    app:itemIconTint="@drawable/selector"
    android:layout_alignParentBottom="true"
    app:menu="@menu/menu_navigation"/>
Run Code Online (Sandbox Code Playgroud)

这是它的样子

这是它的样子

我希望它有这样的圆角。不是漂浮而是角落 圆角

Tej*_*ale 14

正如您在问题中提到的,如果您不寻找影子。您可以使用 Simple Shape Drawable来实现它,无需为此结果添加额外的库:

在此输入图像描述

在您的活动/片段 XML 中:

        <com.google.android.material.bottomnavigation.BottomNavigationView
        android:id="@+id/botttom_navigation"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_margin="@dimen/spacing_40"
        android:background="@drawable/nav_background_curved"
        app:itemIconTint="@color/c_white"
        app:itemTextColor="@color/c_white"
        app:menu="@menu/dashboard_menu" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

在名为 nav_background_curved 的可绘制文件夹中创建 XML

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<solid android:color="#1bc0a7" />
<corners android:radius="10dp" />
</shape>
Run Code Online (Sandbox Code Playgroud)


Gab*_*tti 5

BottomNavigationView使用作为背景MaterialShapeDrawable
您可以使用以下内容:

    <com.google.android.material.bottomnavigation.BottomNavigationView
        app:backgroundTint="....."
        android:id="@+id/botttom_navigation"
        app:menu="@menu/...."/>
Run Code Online (Sandbox Code Playgroud)

然后应用shapeAppearanceModel圆角:

    val bottomNavigationViewation : BottomNavigationView = findViewById(R.id.botttom_navigation)
    val radius = resources.getDimension(R.dimen.cornerSize)

    val shapeDrawable : MaterialShapeDrawable= bottomNavigationViewation.background as MaterialShapeDrawable
    shapeDrawable.shapeAppearanceModel = shapeDrawable.shapeAppearanceModel
        .toBuilder()
        .setAllCorners(CornerFamily.ROUNDED, radius)
        .build()
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明