如何将自定义样式应用于SwitchCompat

威灵

我想将自定义样式应用于SwitchCompat。将可绘制对象和文本更改为打开和关闭状态。我该如何实现?我找不到有关如何完成此操作的任何示例。我在styles.xml中尝试了以下操作,但显然我没有使用正确的父级:

<style name="Switch" parent="android:Widget.AppCompat.Widget.CompoundButton.SwitchCompat">
    <item name="android:textOn">@string/common_yes</item>
    <item name="android:textOff">@string/common_no</item>
    <item name="android:thumb">@drawable/btn_switch_selector</item>
    <item name="android:track">@drawable/btn_switch_bg_selector</item>
</style>

编辑

我设法在代码中更改了可绘制对象。

switchView.setThumbResource(R.drawable.btn_switch_selector);
switchView.setTrackResource(R.drawable.btn_switch_bg_selector);

但我还没有找到更改开关文本的方法。以下代码段似乎无效。也许我需要设置更多的文本属性?

switchView.setTextOn(context.getString(R.string.common_yes));
switchView.setTextOff(context.getString(R.string.common_no));

根据SwitchCompat源代码,应该支持开/关文本:https : //android.googlesource.com/platform/frameworks/support/+/421d8baa4a524e1384bcf033360bccaf8d55081d/v7/appcompat/src/android/support/v7/widget/ SwitchCompat.java

{@link #setText(CharSequence)text}属性控制在开关标签中显示的文本,而{@link #setTextOff(CharSequence)off}和{@link #setTextOn(CharSequence)on}文本则控制文本。在拇指上。

编辑2

终于找到了代码解决方案。显然setShowText()需要将设置true为,文本才能显示在交换机上。

switchView.setTextOn(context.getString(R.string.common_yes));
switchView.setTextOff(context.getString(R.string.common_no));
switchView.setShowText(true);
switchView.setThumbResource(R.drawable.btn_switch_selector);
switchView.setTrackResource(R.drawable.btn_switch_bg_selector);

和xml解决方案

<android.support.v7.widget.SwitchCompat
        android:id="@+id/view_switch"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"            
        android:thumb="@drawable/btn_switch_selector"
        app:track="@drawable/btn_switch_bg_selector"
        android:textOn="@string/common_yes"
        android:textOff="@string/common_no"
        app:showText="true" />

我仍然想知道是否有办法将其放入styles.xml

威灵

最终,我找到了在整个应用程序中应用相同样式的方法。我将以下行放入我的themes.xml

<item name="switchStyle">@style/Custom.Widget.SwitchCompat</item>

在我的以下 styles.xml

<style name="Custom.Widget.SwitchCompat" >
    <item name="android:thumb">@drawable/btn_switch_selector</item>
    <item name="track">@drawable/btn_switch_bg_selector</item>
    <item name="showText">true</item>
    <item name="android:textOn">@string/common_yes</item>
    <item name="android:textOff">@string/common_no</item>
</style>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Ionic 5-如何将自定义样式应用于离子输入

来自分类Dev

如何将自定义主题应用于Google自定义搜索?

来自分类Dev

将自定义样式应用于微调器

来自分类Dev

如何将自定义字体应用于Android应用中的每个TextView

来自分类Dev

如何将自定义字体应用于TTTAttributedLabel

来自分类Dev

如何将自定义材质设计主题应用于Bootstrap组件

来自分类Dev

如何将自定义函数应用于熊猫数据框的2列?

来自分类Dev

如何将自定义比较器应用于R数据帧?

来自分类Dev

如何将自定义滚动功能应用于pandas groupby?

来自分类Dev

如何将自定义滚动功能应用于pandas groupby?

来自分类Dev

如何将自定义JsonConverter应用于字典中列表中的值?

来自分类Dev

如何将自定义ServiceStack RequestFilterAttribute应用于自动生成的服务?

来自分类Dev

如何将自定义颜色应用于PdfPCell的背景?

来自分类Dev

如何将自定义材质设计主题应用于Bootstrap组件

来自分类Dev

如何将自定义函数应用于 quanteda 语料库

来自分类Dev

如何将自定义排序应用于此对象数组?

来自分类Dev

如何将自定义重试策略应用于 Azure 函数中的 Eventhub 绑定

来自分类Dev

如何将CSS样式应用于自定义属性

来自分类Dev

如何清除应用于元素的自定义样式?

来自分类Dev

将自定义样式应用于页面上的所有按钮

来自分类Dev

仅将自定义样式应用于父mat-tab-group

来自分类Dev

将自定义样式应用于内部Chrome页面

来自分类Dev

将自定义样式应用于引导选择 .dropdown-menu.open

来自分类Dev

django-如何将自定义模板过滤器应用于绝对URL

来自分类Dev

在next.js中,如何将自定义CSS类和引导类同时应用于元素

来自分类Dev

将自定义主题应用于Odoo应用

来自分类Dev

无法将自定义listSelector应用于ListView

来自分类Dev

将自定义函数应用于数据框

来自分类Dev

将自定义功能应用于熊猫df

Related 相关文章

  1. 1

    Ionic 5-如何将自定义样式应用于离子输入

  2. 2

    如何将自定义主题应用于Google自定义搜索?

  3. 3

    将自定义样式应用于微调器

  4. 4

    如何将自定义字体应用于Android应用中的每个TextView

  5. 5

    如何将自定义字体应用于TTTAttributedLabel

  6. 6

    如何将自定义材质设计主题应用于Bootstrap组件

  7. 7

    如何将自定义函数应用于熊猫数据框的2列?

  8. 8

    如何将自定义比较器应用于R数据帧?

  9. 9

    如何将自定义滚动功能应用于pandas groupby?

  10. 10

    如何将自定义滚动功能应用于pandas groupby?

  11. 11

    如何将自定义JsonConverter应用于字典中列表中的值?

  12. 12

    如何将自定义ServiceStack RequestFilterAttribute应用于自动生成的服务?

  13. 13

    如何将自定义颜色应用于PdfPCell的背景?

  14. 14

    如何将自定义材质设计主题应用于Bootstrap组件

  15. 15

    如何将自定义函数应用于 quanteda 语料库

  16. 16

    如何将自定义排序应用于此对象数组?

  17. 17

    如何将自定义重试策略应用于 Azure 函数中的 Eventhub 绑定

  18. 18

    如何将CSS样式应用于自定义属性

  19. 19

    如何清除应用于元素的自定义样式?

  20. 20

    将自定义样式应用于页面上的所有按钮

  21. 21

    仅将自定义样式应用于父mat-tab-group

  22. 22

    将自定义样式应用于内部Chrome页面

  23. 23

    将自定义样式应用于引导选择 .dropdown-menu.open

  24. 24

    django-如何将自定义模板过滤器应用于绝对URL

  25. 25

    在next.js中,如何将自定义CSS类和引导类同时应用于元素

  26. 26

    将自定义主题应用于Odoo应用

  27. 27

    无法将自定义listSelector应用于ListView

  28. 28

    将自定义函数应用于数据框

  29. 29

    将自定义功能应用于熊猫df

热门标签

归档