如何在 LinearLayout 中不对齐 Switch 和 TextView 的情况下将文本位置设置为 Switch 的右侧?我尝试覆盖 style.xml 按钮中的 CheckBox 按钮样式,但我不知道如何获取 Switch 按钮引用?
最佳答案
我最近遇到了同样的问题,因为我不想将我的布局包装在一个额外的容器中,就像我遇到的所有建议的答案一样。
我发现通过在开关中添加 android:layoutDirection="rtl"
我可以更改文本的方向,因为 Android 知道该 View 应该由人读取/使用谁从右向左阅读。
请参阅下面的完整 fragment ,包括拇指和文本之间的额外填充
<Switch
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:switchPadding="16dp"
android:layoutDirection="rtl"
android:text="Your Text" />
<小时/>
更新
我决定更新此内容以供将来引用,因为评论中的声明是错误的,并且即使问题指出“没有在 LinearLayout 中对齐 Switch 和 TextView”,该答案也“不接受”,而当前接受的答案确实如此.
所提供的解决方案的作用是告诉特定的小部件更改其布局方向,并通过这样做将其从“LTR”(从左到右)翻转到“RTL”(从右到左)。
如果您不愿意嵌套布局,这是一个可行的解决方案。
测试
- 将小部件布局方向设置为“RTL”
- 运行应用
- 转至“设置”>“开发者选项”>“强制 RTL 布局方向”
- 观察布局
所有其他小部件的方向将翻转为“RTL”,因为默认情况下它们位于“LTR”,并且 Switch 不会发生任何情况,因为它已经处于正确的配置中。检查下面的图像。
布局方向“LTR”默认
布局方向“RTL”
关于java - 如何设置开关右侧的文本位置(如复选框),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45983522/