在Android中,alignBaseline和alignBottom有什么区别?

32

我尝试过对几个TextView对象进行对齐,它们给了我相同的结果。“baseline”和“bottom”之间到底有什么区别呢?


5
如果我没记错的话,“bottom”指的是元素的底部,而“baseline”通常是文本所依附的线(请注意,“p”和“q”这样的字母会低于基线,而“t”和“r”这样的字母会坐在基线上)。这就是我一直以来所遇到的情况。 - bandaro
1个回答

125

为了更好地理解区别,我通常在Word或Photoshop中想象两个文本框。

  • alignBottom 将文本框的底部对齐。(蓝色轮廓)
    • 文本可能不均匀,但它们所在的框将底部对齐。
  • alignBaseline 对齐框内实际的文本。这可以确保文本在底部对齐,无论字体大小或文本框大小如何。(绿色线)

enter image description here

什么是基线?

基线是一个排版术语,指的是文本书写在其上的无形线条。

What is a baseline

警告

如果不小心使用alignBaseline,你的布局可能会看起来像这样:Unintended baseline alignment

详情请参考:Watch That Baseline Alignment

(如什么是RelativeLayout中的基准线?所述)

我不知道你是否还在寻找答案,但至少我决定将这个放出来,因为这是最早的结果之一。


4
如果其中一个视图是ImageView,会发生什么? - Ashwin
3
@Ashwin 对于 ImageView,有一个 XML 参数 "baseline",可以让您将 ImageView 的基线定义为视图顶部的距离。例如,通过将 ImageView 的基线设置为 ImageView 的高度,您可以将 TextView 的基线与 ImageView 的底部对齐。 - Nantoka
1
有没有一张图表或地图,展示了https://developer.android.com/reference/android/widget/RelativeLayout.LayoutParams.html的所有内容,并显示了每个参数的视觉差异/示例? - sofs1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接