我有一个包含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()
之间究竟有什么区别?
提前致谢
答案 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)
设置视图的最小高度。不保证视图能够达到此最小高度(例如,如果其父布局以较低的可用高度约束它)。