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

时间:2014-08-14 06:54:37

标签: android android-listview

我使用自动调整TextView作为ListView中的项目。此小部件重写onMeasure()并将高度设置为宽度的一半。所以文字适合这个界限。此小部件还具有侦听器,在更改字体大小时调用该侦听器。例如,如果新字体大小小于14dp,我需要将窗口小部件的高度设置为等于其宽度。所以我将新值设置为flag并调用requestLayout()。

@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);
            }
        }
    });
}

但是调用requestLayout()并没有结果。那么如何更改ListViews项的高度并启动其度量呢?

0 个答案:

没有答案