简体   繁体   English

将 TextView 调整为 LinearLayout 中的垂直居中(水平)

[英]Adjust TextView to Vertically center in LinearLayout (horizental)

I have four TextView in LinearLayout with orientation="horizontal" .我在LinearLayout中有四个TextVieworientation="horizontal" Below in image, I want my fourth TextView to vertically center with respect to other views, In simple words, I want to move my fourth TextView a little bit up so it looks like in the center.在下图中,我希望我的第四个TextView相对于其他视图vertically center ,简而言之,我想将我的第四个TextView向上移动一点,使其看起来像在中心。 I tried to add layout:gravity and margins but its not working.我试图添加布局:重力和边距,但它不起作用。

在此处输入图像描述

Here is the code:这是代码:

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

Add this prop to your @+id/tv_amenities LinearLayout将此道具添加到您的@+id/tv_amenities LinearLayout

android:gravity="center_vertical" android:gravity="center_vertical"

Use android:layout_gravity="center_vertical" attribute in your TextView's在 TextView 中使用android:layout_gravity="center_vertical"属性

You could easily do that by adding android:layout_gravity="center_vertical" and removing your margin bottom.您可以通过添加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" />

I checked your code inside a constraint layout and it's fine.我在约束布局中检查了您的代码,这很好。 All I changed is in your last TextView:我所做的只是在您的最后一个 TextView 中:

android:layout_gravity="center"

Or或者

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. layout_gravity=center 在这里看起来与 layout_gravity=center_horizontal 相同,因为它们处于垂直线性布局中。 You can't center vertically in this case, so layout_gravity=center only centers horizontally.在这种情况下,您不能垂直居中,因此 layout_gravity=center 只能水平居中。

This link can help you to fix your issue in LinearLayout or RelativeLayout.链接可以帮助您解决 LinearLayout 或 RelativeLayout 中的问题。

You might find this link useful: What is the difference between gravity and layout_gravity in Android?您可能会发现此链接很有用: Android 中的重力和布局重力有什么区别?

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM