如何设置开关右侧的文本位置没有在LinearLayout中对齐Switch和TextView?我尝试在style.xml按钮中覆盖CheckBox按钮样式,但我不知道如何获取Switch按钮引用?
答案 0 :(得分:3)
有两种方法,但不推荐使用负填充,所以第二种方式。
=> 使用单独的文字视图
<LinearLayout
android:layout_width="match_parent"
android:orientation="horizontal"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:layout_height="wrap_content">
<Switch
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/switch1" />
<TextView
android:layout_width="wrap_content"
android:text="This is a switch"
android:layout_height="wrap_content" />
</LinearLayout>
编辑 - 没有直接的方法,但使用负填充,父布局或任何自定义库。 请参阅here和here 忘记这一点并使用this library。
答案 1 :(得分:1)
我最近遇到了同样的问题,因为我不想将我的布局包装在一个额外的容器中,就像我遇到的所有答案一样。
我发现通过在开关中添加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" />
我决定更新这个以供将来参考,因为评论中的声明是错误的,即使问题表明“没有在LinearLayout中对齐Switch和TextView”,当前接受的答案也是如此,“ops unaccepted”这个答案
解决方案提供的是告诉特定小部件改变其布局方向,并通过这样做将其从“LTR”(从左到右)翻转到“RTL”(从右到左)。
如果您不愿意嵌套布局,这是一个可行的解决方案。
测试