在 LinearLayout 中将 Text View 调整为垂直居中(水平)

Adjust TextView to Vertically center in LinearLayout (horizental)

我在 LinearLayoutorientation="horizontal" 中有四个 TextView。在下面的图片中,我希望我的第四个 TextViewvertically center 相对于其他视图,简单来说,我想将我的第四个 TextView 向上移动一点,所以它看起来像中央。我尝试添加 layout:gravity 和边距,但它不起作用。

代码如下:

  <LinearLayout
        android:id="@+id/tv_amenities"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/tv_main_feature_LL"
        android:layout_marginStart="10dp"
        android:layout_marginBottom="10dp"
        android:orientation="horizontal"

        >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/rating_background"
            android:drawableTop="@drawable/ic_food_and_restaurant"
            android:padding="3dp"
            android:text="Resturant"
            android:textAppearance="@style/TextAppearance.AppCompat.Body1"
            android:textColor="@android:color/white" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="10dp"
            android:background="@drawable/rating_background"
            android:drawableTop="@drawable/ic_tv_black_24dp"
            android:padding="3dp"
            android:text="LCD Tv"
            android:textAppearance="@style/TextAppearance.AppCompat.Body1"
            android:textColor="@android:color/white"

            />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="10dp"
            android:background="@drawable/rating_background"
            android:drawableTop="@drawable/ic_local_parking_black_24dp"
            android:padding="3dp"
            android:text="Parking"
            android:textAppearance="@style/TextAppearance.AppCompat.Body1"
            android:textColor="@android:color/white"

            />

        <TextView
            android:id="@+id/tv_plus_amenities"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="15dp"
            android:layout_marginBottom="20dp"
            android:background="@drawable/round_background"
            android:text="+15"

            android:textColor="@android:color/white" />


    </LinearLayout>

将此道具添加到您的 @+id/tv_amenities LinearLayout

android:gravity="center_vertical"

在您的 TextView

中使用 android:layout_gravity="center_vertical" 属性

您可以通过添加 android:layout_gravity="center_vertical" 并删除底部边距来轻松做到这一点。

        <TextView
        android:id="@+id/tv_plus_amenities"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="15dp"
        android:layout_gravity="center_vertical"
        android:background="@drawable/round_background"
        android:text="+15"
        android:textColor="@android:color/white" />

我在约束布局中检查了您的代码,没有问题。 我所做的所有更改都在您的最后一个 TextView 中:

android:layout_gravity="center"

或者

android:layout_gravity="center_vertical"

The layout_gravity=center looks the same as layout_gravity=center_horizontal here because they are in a vertical linear layout. You can't center vertically in this case, so layout_gravity=center only centers horizontally.

这个link can help you to fix your issue in LinearLayout or RelativeLayout.

您可能会发现这个 link 有用:重力和 Android 中的 layout_gravity 有什么区别?