因此,TextView顶部的空格是用于英语以外的字符的填充,例如重音。要删除此空间,您可以将XML:includeFontPadding属性设置为false,或者使用函数setIncludeFontPadding(false)以编程方式进行设置。
编辑答复
如果设置android:includeFontPadding属性不能完成你想要做的事情,另一个解决方案就是覆盖你所使用的TextView的onDraw(Canvas canvas)方法,这样它就可以消除Android添加的额外的顶部填充到每个TextView。在写了我的原始答案之后,我发现由于某些原因,除了字体填充之外,TextView还包含额外的填充。删除字体填充以及这个额外的填充完全对齐文本到TextView的顶部。看下面的代码片段。
public class TopAlignedTextView extends TextView {
// Default constructor when inflating from XML file
public TopAlignedTextView(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
// Default constructor override
public TopAlignedTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs);
setIncludeFontPadding(false); //remove the font padding
setGravity(getGravit