Android AutoResizeTextView - 调整大小后关闭垂直重力

Android AutoResizeTextView - Vertical Gravity off after resize

我正在使用此处找到的 AutoResizeTextView class。 Auto Scale TextView Text to Fit within Bounds 效果很好。但是,我在 RelativeLayout 中有 textview,并且我将 TextView 上的 layout_centerVertical 属性 设置为 true。效果很好,除非 TextView 不适合并自行调整大小。然后文本不再在 RelativeLayout 中垂直居中。

我猜这是因为垂直对齐是在 TextView 调整大小之前执行的。

我该如何解决这个问题?有没有办法在调整文本大小后重新触发View的重力对齐?

布局示例

<RelativeLayout 
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:padding="10dp">

     <com.mypackage.android.AutoResizeTextView
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="Some Text Here"
          android:maxLines="1"
          android:ellipsize="end" />

</RelativeLayout>

尝试在

中也触发 resizeText()
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    super.onMeasure(widthMeasureSpec, heightMeasureSpec);
    // trigger here
}

//This is called during layout when the size of this view has changed
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
    super.onSizeChanged(w, h, oldw, oldh);
    // trigger here
}