我希望将两个开关集中在一起,就像我对textviews一样,但我已经尝试了所有可能的选项而没有成功。
这是代码的简要版本:
<LinearLayout [...]
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text="NOTIFICATIONS" />
<TextView [...] />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<Switch
android:id="@+id/swnotif"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_weight="1" />
<Switch [...] />
</LinearLayout>
</LinearLayout>
答案 0 :(得分:2)
问题是,gravity
属性似乎不会影响Switch
次观看,就像文字和其他观看一样。解决方法是将每个开关包装在RelativeLayout
中,如下所示:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1" >
<Switch
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true" />
</RelativeLayout>
答案 1 :(得分:1)
尝试我测试
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text="NOTIFICATIONS" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text="MUTE" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical" >
<Switch
android:id="@+id/swnotif"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" />
</FrameLayout>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical" >
<Switch
android:id="@+id/swnotif1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" />
</FrameLayout>
</LinearLayout>
</LinearLayout>
答案 2 :(得分:0)
这里是兄弟,
我左右调整边距。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:weightSum="2">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello"
android:textSize="30sp"
android:gravity="center"
android:layout_weight="1"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello"
android:gravity="center"
android:layout_weight="1"
android:textSize="30sp"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:weightSum="2">
<Switch
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="false"
android:text="New"
android:layout_marginLeft="40dp"
android:layout_marginRight="40dp"
android:layout_weight="1"
/>
<Switch
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="false"
android:text="New"
android:layout_marginLeft="40dp"
android:layout_marginRight="40dp"
android:layout_weight="1"/>
</LinearLayout>
</LinearLayout>
希望这可以提供帮助
答案 3 :(得分:0)
将center_vertical gravity设置为TextView并切换父级LinearLayout:
android:gravity="center_vertical"