对于可以显示文字的View(如TextView,Button等),它的baseline 指的是这个UI控件中文字Text的baseline 到UI控件顶端的偏移值
可以理解为text下面那条看不见的线
如图设置baseline对齐和不对齐的效果, 左边baselineAligned=true, 右边baselineAligned=false, 红线为假想的baseline
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="3dip"
android:layout_gravity="center_vertical"
android:text="@string/baseline_nested_1_label" />
<!-- We want the middle textview of this vertical linear layout to
be baseline aligned with the others.-->
<LinearLayout
android:orientation="vertical"
android:baselineAlignedChildIndex="1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="http://fqj183-8041380.blog.163.com/blog/@drawable/arrow_up_float"/>
1: <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="5dip"
android:text="@string/baseline_nested_1_label" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="http://fqj183-8041380.blog.163.com/blog/@drawable/arrow_down_float"/>
</LinearLayout>
<!-- We want the third index textview of this vertical linear layout to
be baseline aligned with the others.-->
<LinearLayout
android:orientation="vertical"
android:baselineAlignedChildIndex="2"
android:layout_width="wrap_content"
android:layout_gravity="center_vertical"
android:layout_height="wrap_content">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="http://fqj183-8041380.blog.163.com/blog/@drawable/arrow_up_float"/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="http://fqj183-8041380.blog.163.com/blog/@drawable/arrow_up_float"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="5dip"
android:text="@string/baseline_nested_1_label" />
</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20sp"
android:layout_gravity="center_vertical"
android:text="@string/baseline_nested_1_label" />
</LinearLayout>
红线部分是指用这个layout下面的第几个元素跟其他的元素进行baseline
比方说第一个红线部分:是让这个layout下面的第一个元素,也就是1:处的textView,跟其他的元素进行baseline,这个元素设置了:android:layout_marginRight="5dip",右边 的linearlayout离着这个元素的右边是5dip.
android:layout_baselinealignedChildIndex属性 指当前layout是 以哪个view的基准线与其他的View进行对齐。这个属性只对Button、TextView、EditView有效且下标从0开始。
android:addStatesFromChildren="true".属性说明该viewgroup的drawable属性是否把它的子类的drawable的state包含进来。测试中linearlayout如果不包含该属性(false),当子widget被点击时不会出现被选中的状态。也就是子类的state不会被传递给父类了
相关推荐
本篇文章将深入探讨LinearLayout中的两个关键属性——`android:baselineAligned`和`android:baselineAlignedChildIndex`,以及它们如何影响布局的显示效果。 首先,`android:baselineAligned`属性是一个布尔值,其...
1. `android:baselineAligned` 这个属性决定了LinearLayout中的子视图是否基于它们的基线进行对齐。默认值为`true`,意味着子视图的文字基线会相互对齐。当设置为`false`时,子视图会按照顶部对齐,忽略文字基线的...
同时,可以通过`android:gravity`和`android:baselineAligned`属性来调整子视图在其容器内的对齐方式。 `android:gravity`决定子视图在容器内部的位置,它可以是`top`、`bottom`、`center`、`fill`等值。而`android...
2. `android:baselineAligned`:默认为true,表示所有列的基线对齐。设为false则顶部对齐,常用于多行文本显示不一致的情况。 四、TableLayout中的子视图 TableLayout的子视图通常是TextView、Button等,它们被放置...
5. `android:baselineAligned`:如果为`true`(默认),子视图的基线将对齐。若设为`false`,则子视图顶部对齐。 四、子视图的属性 1. `android:layout_width`和`android:layout_height`:同样用于子视图,但可以...
android:baselineAligned="false" android:gravity="end" android:layout_marginTop="16dp"> android:id="@+id/btnDialogCancel" android:layout_width="0dp" android:layout_weight="1" android:layout_...
5. `android:baselineAligned`: 如果设置为`false`,则子视图的基线不会对齐,这在处理多行文本时可能会有所帮助。 6. `android:divider` 和 `android:showDividers`: 这两个属性可以添加分隔线,`android:divider`...
5. android:baselineAligned 默认情况下,具有相同基线的子视图会在LinearLayout中对齐。若设置为`false`,则忽略基线对齐,子视图顶部对齐。 6. android:divider 和 android:showDividers 这两个属性用于在子视图...
- `android:baselineAlignedChildIndex`: 指定一个索引,用于指定子视图的基线对齐哪个子视图的基线。 - `android:gravity`: 设置LinearLayout中内容的对齐方式,包括水平和垂直方向。如`center`、`left`、`right`...
此外,还有其他属性可以调整线性布局的行为,如`android:gravity`控制子视图在其容器中的对齐方式,`android:baselineAligned`控制是否使基线对齐,`android:divider`和`android:showDividers`用于在子视图之间添加...
- `android:baselineAligned`: 如果设为`false`,则子视图不会在基线对齐,这对于多行文本或不同大小的按钮排列很有用。 2. **子视图的权重(layout_weight)** `LinearLayout`的一个独特特性是支持权重分配,...
android:baselineAligned="false" android:gravity="right"> android:id="@+id/cancel_button" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:...
3. `android:baselineAligned`:是否与其他控件对齐基线,默认为true。 4. `android:initialValue`:设置初始值,以毫秒为单位。 **事件监听** Chronometer提供了`onChronometerTick()`回调,可以在每次时间更新时...
3. `android:baselineAlignedChildIndex`:当LinearLayout与其他布局按基线对齐时,此属性指定哪个子视图的基线应该与父布局对齐。 4. `android:gravity`:此属性决定LinearLayout内部内容的对齐方式。它可以是`top...
LinearLayout的XML属性中,`android:baselineAligned`用于控制子视图的基线对齐,若设为true,子视图的内容基线会尽可能对齐。`android:baselineAlignedChildIndex`指定了基线对齐的子视图索引。`android:gravity`...
5. `android:baselineAligned`: 当设置为"false"时,即使子视图有不同的高度,它们的基线也会对齐,这对于文本排列特别有用。 线性布局的一个常见应用场景是在列表视图(ListView)或网格视图(GridView)中,作为...
android:baselineAligned="false" android:focusable="true" android:focusableInTouchMode="true" android:orientation="horizontal" android:paddingBottom="8dp" android:paddingLeft="10dp" android:...
`android:gravity`控制子视图在容器内的对齐方式,而`android:baselineAligned`则决定是否使子视图的基线对齐,这对于文本布局特别有用。 在Java代码中,我们可以动态地添加、删除或修改线性布局的子视图。例如: ...
除了基本的属性,线性布局还可以使用`android:gravity`和`android:baselineAligned`等属性。`android:gravity`控制子视图在布局内的对齐方式,如"center"、"start"、"end"等。而`android:baselineAligned`用于控制...
LinearLayout是线性布局控件,它包含的子控件将以横向或竖向的方式排列,按照相对位置来排列所有的widgets或者其他的containers,超过边界时,某些控件将... android:baselineAligned:是否允许用户调整它内容的基线。