1

我正在使用此处找到的 AutoResizeTextView 类。自动缩放 TextView 文本以适应边界,效果很好。但是,我在 RelativeLayout 中有 textview,并且 TextView 上的 layout_centerVertical 属性设置为 true。效果很好,除非 TextView 不适合并自行调整大小。然后文本不再在RelativeLayout 中垂直居中。

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

我怎样才能解决这个问题?有没有办法在调整文本大小后重新触发视图的重力对齐?

示例布局

<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>
4

1 回答 1

1

尝试同时触发 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
}
于 2017-03-24T19:26:06.410 回答