【Android】之 布局

参考资料:https://developer.android.com/guide/topics/ui/declaring-layout.html




一、相对布局(RelativeLayout)


(1)属性

  • 组件默认左对齐、顶部对齐
  • 设置组件在指定组件的右边

     android:layout_toRightOf="@id/tv1"
    
  • 设置在指定组件的下边

    android:layout_below="@id/tv1"
    
  • 设置右对齐父元素

    android:layout_alignParentRight="true"
    
  • 设置与指定组件右对齐

     android:layout_alignRight="@id/tv1"
    

这里写图片描述
这里写图片描述

(2)应用场景

(1) 允许指定子View控件彼此之间的关系




二、线性布局(LinearLayout)


(1)属性

  ① 指定各个节点的排列方向
    android:orientation="horizontal" // 水平布局
    android:orientation="vertical"  // 垂直布局

这里写图片描述


  ② 设置右对齐
    android:layout_gravity="right"

这里写图片描述


  ③ 当水平布局(horizontal)时,只能顶部底部对齐和竖直居中

即:水平布局(horizontal)时, 只能使用center_vertical,不能使用center_horizontal。
                   只能使用top, bottom,不能left right

Tips : 使用 match_parent 时注意不要把其他组件顶出去

这里写图片描述
这里写图片描述


  ④ 权重(按比例分配剩余的空间)

android:layout_height 均设置为 “0dp”(对于垂直布局),
或将每个视图的android:layout_width 均设置为 “0dp”(对于水平布局)

    android:layout_weight="1"

这里写图片描述这里写图片描述

(2)应用场景

用于使所有子视图在单个方向(垂直或水平)保持对齐

(1) 按权重进行占据相同的空间量




三、帧布局(FrameLayout)


(1)属性

  • 默认组件都是左对齐和顶部对齐,每个组件相当于一个div
  • 可以更改对齐方式

    android:layout_gravity="bottom"
    
  • 不能相对于其他组件布局
 <TextView
        android:layout_width="240dp"
        android:layout_height="240dp"
        android:background="#FF0000"
        android:layout_gravity="center"
        />

这里写图片描述

(2)应用场景

使用API : Fragment 和 TabHost 必须有帧布局




四、表格布局(TableLayout)


  • 每个节点是一行,它的每个子节点是一列
  • 表格布局中的节点可以不设置宽高,因为设置了也无效

    • 根节点的子节点宽为匹配父元素,高为包裹内容
    • 节点的子节点宽为包裹内容,高为包裹内容
    • 以上默认属性无法修改
  • 根节点中可以设置以下属性,表示让第1列拉伸填满屏幕宽度的剩余空间

    android:stretchColumns="1"
    

(2)应用场景

将子视图组织成多行




五、绝对布局(AbsoluteLayout)


  • 直接指定组件的x、y坐标

    android:layout_x="144dp"
    android:layout_y="154dp"
    

这里写图片描述
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值