【问题标题】:how to make an Angled cuts top app bar using material design?如何使用材料设计制作有角度的顶部应用栏?
【发布时间】:2020-12-16 23:05:45
【问题描述】:

我在材料设计 io 网站上找到了这个指南,任何人都可以分享你的想法,如何使用材料设计而不是 3rd 方插件来制作它。

尝试使用切割形状和重叠的 Material Design 底页进行复制,我正在寻找制作此 UI 的标准指南。

【问题讨论】:

标签: android material-design android-toolbar material-components-android android-shapedrawable


【解决方案1】:

此组件名为Backdrop,但不可用。

如果组件是固定的,你可以使用类似的东西:

<androidx.coordinatorlayout.widget.CoordinatorLayout     
   android:background="@color/colorPrimary"
   ..>

   <com.google.android.material.appbar.AppBarLayout/>

   <androidx.constraintlayout.widget.ConstraintLayout 
       android:id="@+id/ll"
       ..>

然后对布局应用一个MaterialShapeDrawable

    val layout : ConstraintLayout = findViewById(R.id.ll)
    val  radius = resources.getDimension(R.dimen.cornerSize24);

    val shapeAppearanceModel: ShapeAppearanceModel = ShapeAppearanceModel()
        .toBuilder()
        .setTopLeftCorner(CornerFamily.CUT,radius)
        .build();

    val shapeDrawable = MaterialShapeDrawable(shapeAppearanceModel);
    shapeDrawable.fillColor = AppCompatResources.getColorStateList(this,R.color.white)
    ViewCompat.setBackground(layout,shapeDrawable);

如果您想使用 BottomSheet,您可以使用 as shapeAppearanceOverlay

来检查 this answer
  <style name="ShapeAppearanceOverlay.App.BottomSheetDialog" parent="">
    <item name="cornerFamily">cut</item>
    <item name="cornerSize">0dp</item>
    <item name="cornerSizeTopLeft">24dp</item>
  </style>

【讨论】:

    猜你喜欢
    • 2020-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-09
    • 1970-01-01
    • 2015-10-29
    • 2021-05-14
    • 2015-10-16
    相关资源
    最近更新 更多