Android center_vertical 重力不起作用
Android center_vertical gravity not works
您好,我正在尝试使 tvGoldName
和 tvGoldValue
成为 ImageView 从左侧算起的高度并垂直居中。如何实现?
这是我的代码:
<LinearLayout
android:id="@+id/llGold"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/llToNextLevel"
android:orientation="horizontal"
android:layout_gravity="center_vertical"
android:weightSum="10">
<RelativeLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="5"
android:gravity="right">
<ImageView
android:id="@+id/ivGoldIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingRight="10dp"
android:src="@mipmap/coins"
android:textColor="#FFFF00"
android:textSize="21sp" />
<TextView
android:id="@+id/tvGoldName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/ivGoldIcon"
android:gravity="right|center_vertical"
android:paddingRight="10dp"
android:text="@string/gold"
android:textColor="#FFFF00"
android:textSize="21sp" />
</RelativeLayout>
<TextView
android:id="@+id/tvGoldValue"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="5"
android:gravity="left"
android:paddingRight="10dp"
android:text="0"
android:textSize="21sp" />
</LinearLayout>
要使两者与 ImageView 具有相同的高度:
由于 tvGoldName
在 RelativeLayout
中,因此将其顶部和底部与 ImageView
:
对齐
<TextView
android:id="@+id/tvGoldName"
android:layout_alignBottom="@+id/ivGoldIcon"
android:layout_alignTop="@id/ivGoldIcon"
因为 tvGoldValue
在父 LinearLayout
中,那么:
将其高度设置为match_parent,并与center_vertical
重力垂直对齐:
<TextView
android:gravity="center_vertical"
android:gravity="center_vertical"
android:layout_height="match_parent"
但一般来说,您应该使用 ConstraintLayout
来获得没有嵌套视图的平面设计;由于 RelativeLayout
存在性能问题。
您好,我正在尝试使 tvGoldName
和 tvGoldValue
成为 ImageView 从左侧算起的高度并垂直居中。如何实现?
这是我的代码:
<LinearLayout
android:id="@+id/llGold"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/llToNextLevel"
android:orientation="horizontal"
android:layout_gravity="center_vertical"
android:weightSum="10">
<RelativeLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="5"
android:gravity="right">
<ImageView
android:id="@+id/ivGoldIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingRight="10dp"
android:src="@mipmap/coins"
android:textColor="#FFFF00"
android:textSize="21sp" />
<TextView
android:id="@+id/tvGoldName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/ivGoldIcon"
android:gravity="right|center_vertical"
android:paddingRight="10dp"
android:text="@string/gold"
android:textColor="#FFFF00"
android:textSize="21sp" />
</RelativeLayout>
<TextView
android:id="@+id/tvGoldValue"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="5"
android:gravity="left"
android:paddingRight="10dp"
android:text="0"
android:textSize="21sp" />
</LinearLayout>
要使两者与 ImageView 具有相同的高度:
由于 tvGoldName
在 RelativeLayout
中,因此将其顶部和底部与 ImageView
:
<TextView
android:id="@+id/tvGoldName"
android:layout_alignBottom="@+id/ivGoldIcon"
android:layout_alignTop="@id/ivGoldIcon"
因为 tvGoldValue
在父 LinearLayout
中,那么:
将其高度设置为match_parent,并与center_vertical
重力垂直对齐:
<TextView
android:gravity="center_vertical"
android:gravity="center_vertical"
android:layout_height="match_parent"
但一般来说,您应该使用 ConstraintLayout
来获得没有嵌套视图的平面设计;由于 RelativeLayout
存在性能问题。