如何实现TextView内容垂直居中?现有代码未生效求解决方案
嘿,我来帮你搞定这个TextView文本垂直居中的问题!你现在用的属性其实搞错啦,咱们一步步捋清楚:
核心问题:混淆了
layout_gravity和gravity 首先得明确这两个属性的本质区别:
android:layout_gravity:控制当前View在父容器中的位置,比如让TextView在LinearLayout里整体垂直居中,和文本内部对齐无关。android:gravity:控制View内部内容(比如文本)的对齐方式,这才是你要用来让文本在TextView里垂直居中的正确属性!
你现在的TextView高度设为wrap_content,它本身的高度和文本高度完全一致,所以layout_gravity="center_vertical"不仅达不到文本居中的目的,视觉上也看不出任何变化~
解决方法
直接把属性换成android:gravity="center_vertical"就行,如果需要同时让文本水平居中,可以写成android:gravity="center"(水平+垂直双居中)。修改后的代码如下:
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_vertical" android:text="****" android:textColor="@color/bhTextColorPrimary" android:textSize="16sp" />
额外场景补充
要是你后续给TextView设置了固定高度(比如60dp)或者上下内边距(paddingTop/paddingBottom),用android:gravity="center_vertical"也能让文本在这些额外空间里稳稳垂直居中,效果会更直观。
内容的提问来源于stack exchange,提问作者Cyrus
相关产品推荐
相关产品推荐

