在布局中,如何在Switch文本周围增加填充,以便文本适合Switch?

时间:2018-01-12 15:56:57

标签: java android android-layout

在Android Studio中,我创建了一个Switch。 Switch设置了textOfftextOn属性,因此在选中Switch时,它看起来像这样: the Switch checked

正如您所看到的,文本对于Switch来说太大了。我在使用Holo Switch时从未遇到过这个问题,但我相信这是现在使用的Material设计风格。不管怎样,我需要为这个项目使用这种开关样式(或看起来像它的样式)。

以下是Switch的代码,它包含在垂直LinearLayout中,作为其行上唯一的项目:

<Switch
        android:id="@+id/switchIncludeOperator"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginTop="15dp"
        android:checked="true"
        android:showText="true"
        android:textOff="@string/no"
        android:textOn="@string/yes" />

我想放大开关,使其适合包含的文字。

我尝试设置android:thumbTextPadding属性,这是我最好的猜测。但是,它没有做我想要的。例如,thumbTextPadding的{​​{1}}如下所示:with thumbTextPadding

我尝试了其他设置,例如10dpswitchPadding,但我还没有找到可行的解决方案。我甚至尝试将比例属性设置为drawablePadding(无论是否减小文字大小):scaled

如何展开圆圈以适合文字?

如果可能的话,我想避免手动创建一堆自定义绘图。

修改

增加2属性实际上不会更改文本大小。它似乎增加了开关周围的空白区域:

textSize位于textSize

2sp textSize

2sp位于textSize

30sp textSize

1 个答案:

答案 0 :(得分:1)

有一种方法可以让它没有任何可绘制的东西 - 你可以制作自己的风格,如:

 <style name="SwitchTextAppearence">
    <item name="android:textSize">5sp</item>
</style>

您希望在切换文本中添加任何参数,然后通过以下方式使用它:

android:switchTextAppearance="@style/SwitchTextAppearence"

您也可以使用以下代码在代码中执行此操作:

switch.setSwitchTextAppearance(getActivity(), R.style.SwitchTextAppearence);

如果您想使用文字扩展圆圈,可以轻松使用:

android:scaleX="@dimen/switchSize"
android:scaleY="@dimen/switchSize"

但是这会扩展你的开关的所有元素,包括文字。