`

android:baselineAligned,baselineAlignedChildIndex,addStatesFromChildren

 
阅读更多

对于可以显示文字的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不会被传递给父类了

 

  • 大小: 24.6 KB
分享到:
评论

相关推荐

    BaseLine.zip

    本篇文章将深入探讨LinearLayout中的两个关键属性——`android:baselineAligned`和`android:baselineAlignedChildIndex`,以及它们如何影响布局的显示效果。 首先,`android:baselineAligned`属性是一个布尔值,其...

    Android移动应用开发线性布局LinearLayout的常用属性.pdf

    1. `android:baselineAligned` 这个属性决定了LinearLayout中的子视图是否基于它们的基线进行对齐。默认值为`true`,意味着子视图的文字基线会相互对齐。当设置为`false`时,子视图会按照顶部对齐,忽略文字基线的...

    android中的布局

    同时,可以通过`android:gravity`和`android:baselineAligned`属性来调整子视图在其容器内的对齐方式。 `android:gravity`决定子视图在容器内部的位置,它可以是`top`、`bottom`、`center`、`fill`等值。而`android...

    Android学习笔记13:表格布局管理器TableLayout

    2. `android:baselineAligned`:默认为true,表示所有列的基线对齐。设为false则顶部对齐,常用于多行文本显示不一致的情况。 四、TableLayout中的子视图 TableLayout的子视图通常是TextView、Button等,它们被放置...

    Android 线性布局 实例

    5. `android:baselineAligned`:如果为`true`(默认),子视图的基线将对齐。若设为`false`,则子视图顶部对齐。 四、子视图的属性 1. `android:layout_width`和`android:layout_height`:同样用于子视图,但可以...

    Android对话框(Dialog)实例

    android:baselineAligned="false" android:gravity="end" android:layout_marginTop="16dp"&gt; android:id="@+id/btnDialogCancel" android:layout_width="0dp" android:layout_weight="1" android:layout_...

    android线性布局开发文档

    5. `android:baselineAligned`: 如果设置为`false`,则子视图的基线不会对齐,这在处理多行文本时可能会有所帮助。 6. `android:divider` 和 `android:showDividers`: 这两个属性可以添加分隔线,`android:divider`...

    LinearLayout的属性详解

    5. android:baselineAligned 默认情况下,具有相同基线的子视图会在LinearLayout中对齐。若设置为`false`,则忽略基线对齐,子视图顶部对齐。 6. android:divider 和 android:showDividers 这两个属性用于在子视图...

    安卓开发资料

    - `android:baselineAlignedChildIndex`: 指定一个索引,用于指定子视图的基线对齐哪个子视图的基线。 - `android:gravity`: 设置LinearLayout中内容的对齐方式,包括水平和垂直方向。如`center`、`left`、`right`...

    021 _UI_布局 之 线性布局 xml配置方式

    此外,还有其他属性可以调整线性布局的行为,如`android:gravity`控制子视图在其容器中的对齐方式,`android:baselineAligned`控制是否使基线对齐,`android:divider`和`android:showDividers`用于在子视图之间添加...

    Android应用源码之10._LinearLayout学习.zip

    - `android:baselineAligned`: 如果设为`false`,则子视图不会在基线对齐,这对于多行文本或不同大小的按钮排列很有用。 2. **子视图的权重(layout_weight)** `LinearLayout`的一个独特特性是支持权重分配,...

    photo.rar

    android:baselineAligned="false" android:gravity="right"&gt; android:id="@+id/cancel_button" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:...

    Android 计时器

    3. `android:baselineAligned`:是否与其他控件对齐基线,默认为true。 4. `android:initialValue`:设置初始值,以毫秒为单位。 **事件监听** Chronometer提供了`onChronometerTick()`回调,可以在每次时间更新时...

    Android布局控件之常用linearlayout布局

    3. `android:baselineAlignedChildIndex`:当LinearLayout与其他布局按基线对齐时,此属性指定哪个子视图的基线应该与父布局对齐。 4. `android:gravity`:此属性决定LinearLayout内部内容的对齐方式。它可以是`top...

    A0201线性布局LinearLayout的使用1

    LinearLayout的XML属性中,`android:baselineAligned`用于控制子视图的基线对齐,若设为true,子视图的内容基线会尽可能对齐。`android:baselineAlignedChildIndex`指定了基线对齐的子视图索引。`android:gravity`...

    安卓线性布局

    5. `android:baselineAligned`: 当设置为"false"时,即使子视图有不同的高度,它们的基线也会对齐,这对于文本排列特别有用。 线性布局的一个常见应用场景是在列表视图(ListView)或网格视图(GridView)中,作为...

    Android实现京东App分类页面效果

    android:baselineAligned="false" android:focusable="true" android:focusableInTouchMode="true" android:orientation="horizontal" android:paddingBottom="8dp" android:paddingLeft="10dp" android:...

    Linear-Layout

    `android:gravity`控制子视图在容器内的对齐方式,而`android:baselineAligned`则决定是否使子视图的基线对齐,这对于文本布局特别有用。 在Java代码中,我们可以动态地添加、删除或修改线性布局的子视图。例如: ...

    线性布局

    除了基本的属性,线性布局还可以使用`android:gravity`和`android:baselineAligned`等属性。`android:gravity`控制子视图在布局内的对齐方式,如"center"、"start"、"end"等。而`android:baselineAligned`用于控制...

    Android 布局控件之LinearLayout详细介绍

    LinearLayout是线性布局控件,它包含的子控件将以横向或竖向的方式排列,按照相对位置来排列所有的widgets或者其他的containers,超过边界时,某些控件将... android:baselineAligned:是否允许用户调整它内容的基线。

Global site tag (gtag.js) - Google Analytics