我在LinearLayout
中有一些垂直方向的元素<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:orientation="vertical" >
<TextView
... />
<Button
... />
</LinearLayout>
这些元素不占用应用程序的整个垂直空间,我希望它们垂直居中。我该怎么做?
答案 0 :(得分:2)
Layout_gravity =“center_vertical”不适用于垂直LinearLayout。
我说你可以在LinearLayout上设置android:layout_height="match_parent"
和android:gravity="center_vertical"
。
答案 1 :(得分:2)
尝试这种方式:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:orientation="vertical" > <TextView android:id="@+id/title" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center" android:text="lhkabhfksbj" /> </LinearLayout>
只需将视图的重力设置为“中心”即可。我想这就是你想要的。
答案 2 :(得分:1)
属性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>
希望有所帮助!