根据 TextView 的 Content 高度设置 TextView 的 Padding

Set Padding of TextView depending on Content height of TextView

我目前有一个 paddingBottom 为 20dp 的文本视图。 如果 textView 中的文本足够长以致于在底部被截断,我想减少此填充。

这是一张图表,说明了我想要的行为:

但是,我不确定在哪里调用 setPadding()。 有人可以向我推荐一种获得动态底部填充行为的方法吗?

我最终创建了一个包含我的 textView 的自定义布局,并覆盖了它的 onMeasure() 方法。自定义布局设置为 height='wrap_content'.

系统将可用高度传递给该布局的onMeasure() 方法。所以在这里,我用

测量了我的 child textView 的高度

textView.onMeasure() int preferredHeight = textView.getMeasuredHeight()

如果它的首选高度大于我的自定义视图可用的高度(减去底部填充),我使用 setPadding() 删除了底部填充。否则,我添加了填充。