首页 > 解决方案 > 更改小吃店大小

问题描述

我试图展示一个 SnackBar,但它比预期的要大(在 y 中)。

预期的

在此处输入图像描述

结果

在此处输入图像描述

我尝试在样式上设置填充和边距,但它只是改变了左右填充。

已经试过了

作为一种绝望的方式,我有这个:

<item name="snackbarStyle">@style/Snackbar</item>
<item name="snackbarTextViewStyle">@style/Snackbar.TextView</item>
    <style name="Snackbar" parent="@style/Widget.MaterialComponents.Snackbar.FullWidth">
        <item name="backgroundTint">@color/lh_slate_opacity_90</item>

        <item name="android:paddingEnd">0dp</item>
        <item name="android:paddingStart">0dp</item>
        <item name="android:paddingTop">0dp</item>
        <item name="android:paddingBottom">0dp</item>

        <item name="android:layout_marginTop">0dp</item>
        <item name="android:layout_marginLeft">0dp</item>
        <item name="android:layout_marginRight">0dp</item>
        <item name="android:layout_marginBottom">0dp</item>
    </style>

    <style name="Snackbar.TextView" parent="@style/Widget.MaterialComponents.Snackbar.TextView">
        <item name="android:fontFamily">@font/poppins</item>
        <item name="android:textSize">12sp</item>

        <item name="android:paddingEnd">0dp</item>
        <item name="android:paddingStart">0dp</item>
        <item name="android:paddingTop">0dp</item>
        <item name="android:paddingBottom">0dp</item>

        <item name="android:layout_marginTop">0dp</item>
        <item name="android:layout_marginLeft">0dp</item>
        <item name="android:layout_marginRight">0dp</item>
        <item name="android:layout_marginBottom">0dp</item>
    </style>

我得到相同的行为:

它会更改背景颜色和字体系列,但不会更改快餐栏的顶部和底部填充。

标签: androidmaterial-components-androidandroid-snackbar

解决方案


没有官方 API,但您可以覆盖您的填充资源dimens.xml

<dimen name="design_snackbar_padding_vertical" tools:override="true">5dp</dimen>

在这里,您可以找到可以使用相同方式覆盖的所有尺寸 https://github.com/material-components/material-components-android/blob/master/lib/java/com/google/android/material/snackbar/res /values/dimens.xml


推荐阅读