属性android:layout_gravity相对于其父视图定位视图,这意味着它们的封闭布局。在您的情况下,问题是您没有封闭布局。我知道,这很令人困惑,因为人们可能认为 LinearLayout 会在根窗口中居中,但即使涉及基本上引用其父级的属性,例如“ android:layout_centerInParent ”,它们也总是引用其封闭布局(“父级” )。顺便说一句,“LinearLayout”不支持这些属性。
我的想法来解决你的问题:
解决方案 1:将您的 LinearLayout 放在封闭布局中:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:orientation="vertical" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Textbox1" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Textbox2" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button1" />
</LinearLayout>
</FrameLayout>
解决方案 2:让包含的视图自行对齐
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:id="@+id/textview_1"
android:layout_centerVertical="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Textbox1" />
<TextView
android:id="@+id/textview_2"
android:layout_below="@id/textview_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Textbox2" />
<Button
android:layout_below="@id/textview_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button1" />
</RelativeLayout>
希望有帮助!