无法将ImageButton垂直居中

时间:2019-05-09 19:56:04

标签: xamarin.android

我有一个小问题,似乎无法解决。我创建了一个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>

我在做什么错了?

1 个答案:

答案 0 :(得分:0)

当我们使用 LinearLayout 布局时:

  • android:orientation="vertical"android:layout_gravity仅适用于水平方向时,而不适用于垂直方向。 center_horizo​​ntal

  • 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>