RuffianZhong/RWidgetHelper

在列表中,item高度为wrap_content的时候,icon_with_text会异常,一直重绘高度。

wangshouz opened this issue · 6 comments

页面会一直不停拉升。

image

我感觉是这个计算高度的时候有问题。如果设置了左右icon,还需要判断text的内容高度跟左右icon的高度,不然在左右icon高度大于文字内容高度的时候会导致translateY的计算会有问题,然后导致后续的setPadding会使得mView的高度变高,在调用 invalidate()使得paddingStr.equals(mCacheMultipleIconPaddingVale)一直不成立。

public float getTextHeight(TextView view, int drawableHeight, int paddingTop, int paddingBottom, int drawablePaddingVertical, int iconHeightLeft, int iconHeightRight) {
        if (view == null) return 0;

        /**
         * 1.单行高度*行数
         * 2.最大高度临界值
         */
        Paint.FontMetrics fontMetrics = view.getPaint().getFontMetrics();
        float singleLineHeight = Math.abs((fontMetrics.bottom - fontMetrics.top));//单行高度
        float textHeight = singleLineHeight * view.getLineCount();

        if (textHeight < iconHeightLeft) {
            textHeight = iconHeightLeft;
        }

        if (textHeight < iconHeightRight) {
            textHeight = iconHeightRight;
        }

        //最大高度临界值,不允许超过最大高度临界值
        int maxHeight = view.getHeight() - drawableHeight - paddingTop - paddingBottom - drawablePaddingVertical;//最大允许的宽度
        if (textHeight > maxHeight) {
            textHeight = maxHeight;
        }
        return textHeight;
    }

遇到同样的问题

必现:只要是小米设备更换字体后且使用了icon就会出现

@wangshouz @UserName-Haha

v0.0.14 版本已经修复此问题,升级版本可以解决

@RuffianZhong 这个仍然有问题,麻烦看一下

问题依然存在,小米手机