如何设置开关右侧的文本位置(如复选框)

Fra*_*and 0 java xml android

如何将文本位置设置在 Switch 的右侧而不对齐 LinearLayout 中的 Switch 和 TextView ?我尝试覆盖 style.xml 按钮中的 CheckBox 按钮样式,但我不知道如何获取 Switch 按钮引用?

Rua*_*pes 7

我最近遇到了同样的问题,因为我不想将我的布局包装在一个额外的容器中,就像我遇到的所有答案所建议的那样。

我发现通过添加android:layoutDirection="rtl"开关我可以改变文本的方向,因为 Android 知道这个视图应该由从右到左阅读的人阅读/使用。

请参阅下面的完整片段,包括拇指和文本之间的额外填充

<Switch
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:switchPadding="16dp"
    android:layoutDirection="rtl"
    android:text="Your Text" />
Run Code Online (Sandbox Code Playgroud)

更新

我决定更新此内​​容以供将来参考,因为评论中的声明是错误的,并且即使问题指出“没有在 LinearLayout 中对齐 Switch 和 TextView”(当前接受的答案),操作也“不接受”这个答案。

提供的解决方案的作用是告诉特定的小部件更改其布局方向,并通过这样做将其从“LTR”(从左到右)翻转到“RTL”(从右到左)。

如果您不愿意嵌套布局,这是一个可行的解决方案。

测试

  1. 将小部件布局方向设置为“RTL”
  2. 运行应用程序
  3. 转到“设置”>“开发者选项”>“强制 RTL 布局方向”
  4. 观察布局

所有其他小部件的方向将翻转到“RTL”,因为默认情况下它们处于“LTR”,并且 Switch 不会发生任何事情,因为它已经处于正确的配置中。检查下面的图片。

布局方向默认“LTR”

在此输入图像描述

布局方向“RTL”

在此输入图像描述

  • 这也反映了交换机本身,导致用户体验问题。 (5认同)
  • 是的,我有,你的解决方案超出了OP的要求。我想说的是,应用“rtl”不仅会改变文本对齐方式,还会翻转开关可绘制本身:它变成“不活动时右侧的圆圈 - 活动时左侧的圆圈”。这确实是一个 UI/UX 问题,只会让您的用户感到困惑,因为在几乎所有其他应用程序中,LTR 拼写系统反之亦然。 (3认同)