【问题标题】:Padding between stroke and the drawable笔划和可绘制对象之间的填充
【发布时间】:2021-02-18 05:06:36
【问题描述】:

我使用 MaterialButtonToggleGroup 创建了选择器按钮。

我想在 stroke 和 drawable 之间添加填充。

这是我得到的:

这就是我想要的:

正如您在上图中看到的那样,笔划和可绘制选择器之间有填充。

这是 XML 代码:

<com.google.android.material.button.MaterialButtonToggleGroup
        android:id="@+id/toggleContent"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:visibility="visible"
        app:checkedButton="@id/btnOutline"
        android:paddingVertical="4dp"
        app:selectionRequired="true"
        app:singleSelection="true">

        <com.google.android.material.button.MaterialButton
            android:id="@+id/btnOutline"
            style="@style/Widget.MaterialComponents.Button.OutlinedButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:backgroundTint="@drawable/button_selector"
            android:text="@string/outline"
            android:textSize="15sp"
            android:drawablePadding="2dp"
            android:textAllCaps="false"
            android:textColor="@drawable/selector_color"
            app:strokeColor="@color/selector_btn_toggle" />

        <com.google.android.material.button.MaterialButton
            android:id="@+id/btnMain"
            style="@style/Widget.MaterialComponents.Button.OutlinedButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:backgroundTint="@drawable/button_selector"
            android:text="@string/main"
            android:textAllCaps="false"
            android:drawablePadding="2dp"
            android:textSize="15sp"
            android:textColor="@drawable/selector_color"
            app:strokeColor="@color/selector_btn_toggle" />

    </com.google.android.material.button.MaterialButtonToggleGroup>

正如您在代码中看到的那样,我正在使用 android:drawablePadding="2dp",但这不起作用。 我正在使用 backgroundTint 来设置可绘制的选择器。

可绘制的button_selector代码:

    <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="@color/selector_btn_toggle" android:state_checked="true"/>
</selector>

【问题讨论】:

  • 不使用颜色而是使用背景创建图层列表here
  • 你能发布按钮选择器 xml 吗?
  • @rajan.kali 它已经存在“可绘制的 button_selector 代码:”。
  • 在大纲按钮中添加marginTop、marginStart、marginBottom,在2dp的主按钮中添加marginTop、marginEnd、marginBottom,并且materialbutton组将具有轮廓颜色背景

标签: android xml material-design


【解决方案1】:

创建一个layer-list,添加item 填充,drawablepPadding 适用于复合drawable 不适用于背景,在下面创建

selected_background.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape>
            <solid android:color="#FFFFFF"/>
        </shape>
    </item>
    <item android:top="3dp" android:bottom="3dp" android:right="3dp" android:left="3dp">
        <shape>
            <solid android:color="@color/selector_btn_toggle"/>
        </shape>
    </item>
</layer-list>

然后将其设置为您的button_selectpr

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/selected_background" android:state_checked="true"/>
</selector>

【讨论】:

  • 不工作。不添加填充,颜色也没有改变。
猜你喜欢
  • 2013-10-22
  • 2022-09-28
  • 1970-01-01
  • 2015-12-29
  • 2011-02-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多