Android center_vertical 重力不起作用
Posted
技术标签:
【中文标题】Android center_vertical 重力不起作用【英文标题】:Android center_vertical gravity not works 【发布时间】:2021-12-30 10:31:39 【问题描述】:您好,我正在尝试将 tvGoldName
和 tvGoldValue
设置为 ImageView 从左侧的高度并垂直居中。如何实现?
这是我的代码:
<LinearLayout
android:id="@+id/llGold"
android:layout_
android:layout_
android:layout_below="@id/llToNextLevel"
android:orientation="horizontal"
android:layout_gravity="center_vertical"
android:weightSum="10">
<RelativeLayout
android:layout_
android:layout_
android:layout_weight="5"
android:gravity="right">
<ImageView
android:id="@+id/ivGoldIcon"
android:layout_
android:layout_
android:paddingRight="10dp"
android:src="@mipmap/coins"
android:textColor="#FFFF00"
android:textSize="21sp" />
<TextView
android:id="@+id/tvGoldName"
android:layout_
android:layout_
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_
android:layout_
android:layout_weight="5"
android:gravity="left"
android:paddingRight="10dp"
android:text="0"
android:textSize="21sp" />
</LinearLayout>
【问题讨论】:
【参考方案1】:使两者具有与 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_
但一般来说,您应该使用ConstraintLayout
来进行没有嵌套视图的平面设计;并且RelativeLayout
存在性能问题。
【讨论】:
看起来不错。我明天测试一下。如果效果很好,我会接受你的回答:)以上是关于Android center_vertical 重力不起作用的主要内容,如果未能解决你的问题,请参考以下文章