在 LinearLayout 中将 Text View 调整为垂直居中(水平)
Adjust TextView to Vertically center in LinearLayout (horizental)
我在 LinearLayout
和 orientation="horizontal"
中有四个 TextView
。在下面的图片中,我希望我的第四个 TextView
到 vertically 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 有什么区别?
我在 LinearLayout
和 orientation="horizontal"
中有四个 TextView
。在下面的图片中,我希望我的第四个 TextView
到 vertically 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 有什么区别?