android - 笔划和可绘制对象之间的填充
问题描述
我使用 MaterialButtonToggleGroup 创建了选择器按钮。
我想在描边和可绘制之间添加填充。
这就是我要的:
正如您在上图中看到的那样,在笔画和可绘制选择器之间有填充。
这是 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>
解决方案
创建一个layer-list
,添加 i t
em 填充,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>
推荐阅读
- angular - WPF 的 ContentPresenter 的 Angular 等价物是什么?
- android - 如何为 Room 注入我的应用程序类
- php - 我想从这个 JSON URL 回显 IMDB ID、标题、质量和嵌入 URL
- c# - 如何在 C# 和 ASP.NET MVC 中从视图访问数据到模型
- python - 当数据框列中的值为 x 时,使用 Jupyter Notebooks 和 Python 计算另一个列值为 y 的次数?
- matlab - 如何在 MATLAB 中从国际标准大气模型绘制多个图形?
- unity3d - 在运行时创建可编写脚本的对象 - 它创建实例但不将它们保存在资产文件夹中?
- python - 使用数组的 Seaborn 小提琴图 - 错误:`x` 和 `y` 变量似乎都不是数字
- ios - 是否可以添加带有多行文本的左栏按钮项
- flutter - Flutter web 执行“热重启”而不是“热重载”。Flutter Web 是否支持“热重载”?