根据TextView的内容高度设置TextView的填充

问题描述

我目前有一个textview,其paddingBottom为20dp。 如果textView中的文本足够长而无法在底部截断,我想减少这种填充。

以下是说明我想要的行为的图表:

enter image description here

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

解决方法

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

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

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

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