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
我有一个包含 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