问题描述
我目前有一个textview,其paddingBottom为20dp。 如果textView中的文本足够长而无法在底部截断,我想减少这种填充。
但是,我不确定在哪里调用setPadding()。 有人可以向我推荐一种获得这种动态底部填充行为的方法吗?
解决方法
我最终创建了一个包含我的textView的自定义布局,并覆盖了它的onMeasure()方法。自定义布局设置为height ='wrap_content'。
系统将可用高度传递给此布局的onMeasure()方法。所以在这里,我用
textView.onMeasure() int preferredHeight = textView.getMeasuredHeight()
如果它的首选高度大于我的自定义视图可用的高度(减去底部填充),我用setPadding()删除了底部填充。否则,我添加了填充。