RelativeLayout中的基线是多少?


75

在相对布局的上下文中使用“基线”是指什么?可能是一个简单的问题,但文档和Google均未提供任何提示。

Answers:


121

术语基线来自排版。这是文本中看不见的线字母。

例如,假设您将两个TextView元素彼此相邻。您给第二TextView个大填充(例如20dp)。如果您添加layout_alignBaseline到第二个元素,则文本将“精简”以与第一个元素的基线对齐。来自两个元素的文本将看起来好像它们是在同一条看不见的行上书写的。

<RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >
  <TextView
      android:id="@+id/text1"
      android:text="aatlg"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      />
  <TextView
      android:text="joof"
      android:background="#00ff00"
      android:padding="20dp"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_toRightOf="@id/text1"
      android:layout_alignBaseline="@id/text1"
      />
</RelativeLayout>

23
添加一个说明性的图像将是很棒
htafoya '16

1
另外这是真的默认
威廉Kinaan

31

这是一个直观的解释,可能会澄清克里斯蒂安的答案:

<RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >
    <TextView
        android:id="@+id/text1"
        android:text="Lorem"
        android:background="@android:color/holo_blue_light"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    <TextView
        android:text="Ipsum"
        android:background="@android:color/holo_orange_light"
        android:padding="20dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@id/text1"
        android:layout_alignBaseline="@id/text1" />
</RelativeLayout>

该代码如下所示:

与android:layout_alignBaseline

现在,如果删除该android:layout_alignBaseline属性,则相同的布局如下所示:没有android:layout_alignBaseline

有趣的是,这影响了橙色视图的高度(在第一种情况下,填充应用到视图顶部)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.