android - 当显示和字体尺寸较大时,手动计算可用宽度不正确

标签 android textview font-size android-fonts android-chips

我有一个带有 Chip 的 ViewGroup 作为子项,没有水平 sibling 。

在选择要在 Chip 内设置的文本之前,我尝试计算可用宽度。

final View parent = (View) getParent();
final int parentPaddingLeft = parent.getPaddingLeft();
final int parentPaddingRight = parent.getPaddingRight();
final int paddingLeft = getPaddingLeft();
final int paddingRight = getPaddingRight();
final int leftMargin = layoutParams.leftMargin;
final int rightMargin = layoutParams.rightMargin;
final int textViewSafetyPadding = 20;
final int currentTextMaxWidth =
    parentWidth
        - (textViewSafetyPadding
            + parentPaddingLeft
            + parentPaddingRight
            + paddingLeft
            + paddingRight
            + leftMargin
            + rightMargin);

一切运行良好,但是当我将操作系统显示大小和字体大小更改为最大时 - 我发现所选文本不适合芯片内部。

尽管油漆测量和芯片实际宽度显示它应该合适。

Chip 的宽度 onDraw == 550pxl 所选文本需要 442pxl

paint.measureText(chipText) <= textMaxWidth

当字体大小和显示大小大于默认值时,您知道异常的额外填充吗?

最佳答案

Chip 是一个 compoundButton,我应该减去 Chip#getCompoundPaddingRight/Left 而不是 getPaddingRight/Left

关于android - 当显示和字体尺寸较大时,手动计算可用宽度不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61933744/

相关文章:

swift - 根据设备更改字体大小

css - 为什么字体大小没有改变?

android - 如何解决相机拍摄图像时出现DATA null问题

Android Google Firebase 数据库对象值

android - 具有相同ID的多个组件如何在android中工作?

java - 以编程方式在 LinearLayout 中并排设置两个 TextView

html - 显示缩小字体大小的容器

java - 如果将 SSID/网络名称与字符串匹配的语句不起作用

Android:带有自定义标题的圆角 TextView XML 布局

android linearlayout 和 textview wrap_content 导致剪切最后一行文本