TextView垂直居中

TextView vertical center

Android textview 垂直居中问题

我的代码

<TextView
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_marginLeft="10dp"
       android:fontFamily="@font/googlesansbold"
       android:text="Tance"
       android:lineHeight="1dp"
       android:gravity="center_vertical"
       android:textColor="@android:color/white" />

而不是

android:gravity="center_vertical"

尝试使用

android:layout_gravity="center_vertical"

因为父布局是 LinearLayout 水平方向
TextView 的大小为 wrap_content
将此属性用于 parent 布局,将 not 用于 TextView:

android:gravity="center_vertical"

问题是每种字体都有额外的填充。您不能轻易删除该填充。

您可以编写自己的 textView 来扩展 AppCompatTextView 并覆盖 onDraw。 最简单的方法是使用 textView

使用:

您需要根据自己的喜好硬编码属性 android:height="dp"

<NoPaddingTextView
    android:layout_marginTop="18dp"
    android:background="#c1c1c1"
    android:height="16dp"
    android:includeFontPadding="false"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center_vertical"
    android:lineHeight="1dp"
    android:text="Tance"/>