Android 如何更改ListView中项目的高度?

Android 如何更改ListView中项目的高度?,android,android-listview,Android,Android Listview,我在ListView中使用自动调整大小的TextView作为项目。此小部件覆盖onMeasure(),并将高度设置为宽度的一半。所以文本符合这个界限。这个小部件还有一个监听器,当字体大小改变时调用它。例如,若新字体大小小于14dp,我需要将小部件的高度设置为其宽度。因此,我将新值设置为flag并调用requestLayout() @覆盖 测量时的保护空隙(内部宽度测量等级、内部高度测量等级){ 超级测量(宽度测量、高度测量); int width=getMeasuredWidth(); 整数高度

我在ListView中使用自动调整大小的TextView作为项目。此小部件覆盖onMeasure(),并将高度设置为宽度的一半。所以文本符合这个界限。这个小部件还有一个监听器,当字体大小改变时调用它。例如,若新字体大小小于14dp,我需要将小部件的高度设置为其宽度。因此,我将新值设置为flag并调用requestLayout()

@覆盖
测量时的保护空隙(内部宽度测量等级、内部高度测量等级){
超级测量(宽度测量、高度测量);
int width=getMeasuredWidth();
整数高度=宽度;
if(半码){
高度=宽度/2;
}
设置测量尺寸(宽度、高度);
} 
私有void init(上下文){
this.context=上下文;
final float halfModeMinFontSize=DisplayUtils.dpToPx(上下文,14);
setOnResizeListener(新的OnTextResizeListener(){
@凌驾
public void onTextResize(TextView TextView、float oldSize、float newSize){
如果(新闻大小

但是调用requestLayout()不会产生结果。那么,如何更改ListViews项的高度并开始测量它呢?

您找到解决方案了吗?
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    super.onMeasure(widthMeasureSpec, heightMeasureSpec);

    int width = getMeasuredWidth();
    int height = width;

    if (halfSize) {
        height = width / 2;
    }

    setMeasuredDimension(width, height);
} 

private void init(Context context) {
    this.context = context;
    final float halfModeMinFontSize = DisplayUtils.dpToPx(context, 14);

    setOnResizeListener(new OnTextResizeListener() {
        @Override
        public void onTextResize(TextView textView, float oldSize, float newSize) {
            if (newSize < halfModeMinFontSize) {
                setHalfSize(false);
            }
        }
    });
}