Android Switch小部件文本相对于基线的位置是否过高?

时间:2014-11-06 19:37:28

标签: android android-layout

我正在按基线对齐文本视图和切换。但是,在最终结果中,文本视图文本和切换文本的底部未对齐一个像素。查看字母“RE”底部与水平紫色线之间的间隙。有没有办法补偿这一点,以便两个字符串的底部完全对齐?

enter image description here

1 个答案:

答案 0 :(得分:0)

Switch小部件进行子类化并覆盖getBaseline()方法。然后你可以返回你想要的任何值。

这里是TextView(和继承的Switch)正在做什么来计算基线:

@Override
public int getBaseline() {
    if (mLayout == null) {
        return super.getBaseline();
    }

    int voffset = 0;
    if ((mGravity & Gravity.VERTICAL_GRAVITY_MASK) != Gravity.TOP) {
        voffset = getVerticalOffset(true);
    }

    return getExtendedPaddingTop() + voffset + mLayout.getLineBaseline(0);
}