1

我看过其他答案,它们都适用于操作栏而不是工具栏,它们需要创建新形状。

有没有一种简单的方法可以使用styles.xml?

4

2 回答 2

4

这不是您要查找的内容,因为它不带有 xml。
目前 (1.2.0-beta011.3.0-alpha01) ToolbarorMaterialToolbar不支持shapeAppearance样式作为styles.xml.
但是您可以在任何情况下使用ShapeAppearanceModel材料组件库提供的。

在您的布局中:

<com.google.android.material.appbar.MaterialToolbar
    android:id="@+id/toolbar"
    style="@style/Widget.MaterialComponents.Toolbar.Primary"
    android:layout_margin="4dp"
    ..>

然后只需应用ShapeAppearanceModel圆角:

    float radius = getResources().getDimension(R.dimen.default_corner_radius); //32dp
    MaterialToolbar toolbar = findViewById(R.id.toolbar);
  
    MaterialShapeDrawable materialShapeDrawable = (MaterialShapeDrawable)toolbar.getBackground();
    materialShapeDrawable.setShapeAppearanceModel(materialShapeDrawable.getShapeAppearanceModel()
            .toBuilder()
            .setAllCorners(CornerFamily.ROUNDED,radius)
            .build());

在此处输入图像描述

于 2020-07-15T22:02:23.727 回答
3

创建一个可绘制资源(例如curdToolbar.XML):

  <?xml version="1.0" encoding ="utf-8"?>
  <shape xmls:android="http://schemas.android.com/apk/red/android"
       android:shape="rectangle">

        <corners android:radius= "20dp"/>

    </shape>

像这样将它添加到您的工具栏:

   <androidx.appcompat.widget.Toolbar
      ......
      android:background= "@drawable/curvedToolbar"
   />
于 2020-07-15T21:53:04.437 回答