RelativeLayout的基线是什么?

Dav*_*Liu 74 android android-relativelayout

在相对布局的上下文中使用时,"基线"是指什么?可能是一个简单的问题,但文档和谷歌没有提示.

Cri*_*ian 119

术语基线来自排版.这是文本中隐藏的行号.

例如,假设您将两个TextView元素放在一起.你给第二TextView个大填充(比如说20dp).如果添加layout_alignBaseline到第二个元素,文本将"scoot up"以与第一个元素的基线对齐.两个元素的文本看起来好像都写在同一条不可见的行上.

<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>
Run Code Online (Sandbox Code Playgroud)

  • 添加说明图像会很棒 (22认同)

Séb*_*ien 28

这是一个可视化的解释,可以澄清克里斯蒂安的答案:

<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>
Run Code Online (Sandbox Code Playgroud)

此代码如下所示:

用android:layout_alignBaseline

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

有趣的是观察到对橙色视图的高度有影响(在第一种情况下,填充应用于视图的顶部).