Android 中视图的 setMinHeight 和 setMinimumHeight 有什么区别?

What is the difference between setMinHeight and setMinimumHeight on a View in Android?

我有一个包含 8 个 TextView 的自定义 View,我将它们用作 table 中的一行。插入数据后,我需要设置这些子项的最小高度,因为我希望所有 8 个 TextView 的高度都扩展到最高的那个的高度。

我目前在代码中这样做如下:

for(int i = 0; i < m_textViews.length; i++)
{
    m_textViews[i].setMinHeight(heightPx);
    m_textViews[i].setHeight(heightPx);
}

我正在努力提高代码性能,让我想知道 setMinHeight()setMinimumHeight() 之间到底有什么区别?

提前致谢

setMinHeight(int minHeight)

使 TextView 至少有这么多像素高。设置此值会覆盖任何其他(最小)行数设置。

setMinimumHeight(int minHeight)

设置视图的最小高度。不能保证视图能够达到这个最小高度(例如,如果其父布局将其限制为较小的可用高度)。

我推荐使用 setMinHeight,因为它是专门为 TextView 编写的,它会更新 mMinMode 以保存 PIXELS 值

这是 SetMinHeight 来自 TextView.java sourceCode

/**
* Makes the TextView at least this many pixels tall.
*
* Setting this value overrides any other (minimum) number of lines setting.
*
* @attr ref android.R.styleable#TextView_minHeight
*/
@android.view.RemotableViewMethod
public void setMinHeight(int minHeight) {
    mMinimum = minHeight;
    mMinMode = PIXELS;
    requestLayout();
    invalidate();
}

这是来自 View.java SourceCode

SetMinimumHeight
/**
* Sets the minimum height of the view. It is not guaranteed the view will
* be able to achieve this minimum height (for example, if its parent layout
* constrains it with less available height).
*
* @param minHeight The minimum height the view will try to be.
*
* @see #getMinimumHeight()
*
* @attr ref android.R.styleable#View_minHeight
*/
public void setMinimumHeight(int minHeight) {
    mMinHeight = minHeight 
    requestLayout();
}

参考文献:

TextView.java:

http://androidxref.com/5.1.0_r1/xref/frameworks/base/core/java/android/widget/TextView.java

View.java:

http://androidxref.com/5.1.0_r1/xref/frameworks/base/core/java/android/view/View.java