我有一个小问题,似乎无法解决。我创建了一个ImageButton和一个TextView。它们彼此下方,但我希望它们在垂直和水平方向上居中。我已经将它水平放置,但是无论如何...。我无法使其垂直居中(因此位于屏幕中间)。这是我的代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#0e2a56"
android:weightSum="100">
<ImageButton
android:src="@drawable/add"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="25"
android:id="@+id/imageButton1"
android:gravity="center_vertical|center_horizontal" />
<TextView
android:text="Add project"
android:textColor="#FFFFFF"
android:textSize="35dp"
android:textStyle="bold"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minWidth="25px"
android:minHeight="25px"
android:id="@+id/textView1"
android:gravity="center_vertical|center_horizontal" />
</LinearLayout>
我在做什么错了?
答案 0 :(得分:0)
当我们使用 LinearLayout 布局时:
当android:orientation="vertical"
,android:layout_gravity
仅适用于水平方向时,而不适用于垂直方向。 左,右和 center_horizontal 。
android:orientation="horizontal"
,android:layout_gravity
仅适用于垂直方向,而不适用于水平方向。 顶部,底部, center_vertical 。
因此,如果要使图像按钮和文本视图居中,可以将它们包装在RelativeLayout中,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#0e2a56"
>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_centerInParent="true"
android:gravity="center_horizontal"
>
<ImageButton
android:src="@drawable/add"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageButton1"
/>
<TextView
android:text="Add project"
android:textColor="#FFFFFF"
android:textSize="35dp"
android:textStyle="bold"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minWidth="25px"
android:minHeight="25px"
android:id="@+id/textView1"
/>
</LinearLayout>
</RelativeLayout>