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

Posted

技术标签:

【中文标题】Android AutoResizeTextView - 调整大小后关闭垂直重力【英文标题】:Android AutoResizeTextView - Vertical Gravity off after resize 【发布时间】:2017-08-17 20:33:51 【问题描述】:

我正在使用此处找到的 AutoResizeTextView 类。 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_
     android:layout_
     android:padding="10dp">

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

</RelativeLayout>

【问题讨论】:

【参考方案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

【讨论】:

我在 onMeasure 方法中添加了 resize() 调用,即使调整大小后 textview 也没有正确对齐。谢谢!!!!仅供参考 - 我没有在 TextView 上看到 onSizeChanged 方法。

以上是关于Android AutoResizeTextView - 调整大小后关闭垂直重力的主要内容,如果未能解决你的问题,请参考以下文章

Android 逆向Android 权限 ( Android 逆向中使用的 android.permission 权限 | Android 系统中的 Linux 用户权限 )

android 21 是啥版本

Android逆向-Android基础逆向(2-2)

【Android笔记】android Toast

图解Android - Android核心机制

Android游戏开发大全的目录