Android中的View上setMinHeight和setMinimumHeight有什么区别?

时间:2015-06-24 09:37:50

标签: android android-layout layout android-custom-view

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

我目前在代码中执行此操作,如下所示:

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

我正在尝试提高代码性能,让我想知道setMinHeight()setMinimumHeight()之间究竟有什么区别?

提前致谢

2 个答案:

答案 0 :(得分:2)

我建议使用setMinHeight,因为它是专门为TextViews编写的,它会更新mMinMode以保持PIXELS值

来自TextView.java sourceCode的 SetMinHeight

/**
* 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

答案 1 :(得分:1)

setMinHeight(int minHeight)

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

setMinimumHeight(int minHeight)

设置视图的最小高度。不保证视图能够达到此最小高度(例如,如果其父布局以较低的可用高度约束它)。