前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android应用开发之线性布局

Android应用开发之线性布局

作者头像
李小白是一只喵
发布2022-03-21 15:37:02
6360
发布2022-03-21 15:37:02
举报
文章被收录于专栏:算法微时光

Android中有六大布局,分别是:

  • LinearLayout(线性布局)
  • RelativeLayout(相对布局)
  • TableLayout(表格布局)
  • FrameLayout(帧布局)
  • AbsoluteLayout(绝对布局)
  • GridLayout(网格布局)

今天我们要讲解的就是第一个布局,LinearLayout(线性布局)

LinearLayout

LinearLayout又称作线性布局,是一种非常常用的布局。

这个布局会将它所包含的控件在线性方向上依次排列。

既然是线性排列,肯定就不仅只有一个方向,这里一般只有两个方向:水平方向和垂直方向。

属性

LinearLayout(线性布局)常用到的属性简单归纳一下:

属性名

解释

android:orientation

指定线性布局的方向(水平或者垂直)

android:width

线性布局的容器宽度

android:height

线性布局的容器高度

android:background

线性布局的背景

android:gravity

线性布局中,子容器相对于父容器所在的位置

android:layout_gravity

容器相对它的父元素的对齐方式

android:layout_weight

权重,按比例来分配控件占用父控件的大小

android:divider

分割线

android:showDivider

分割线的位置

android:dividerPadding

分割线的padding

orientation

属性值

解释

android:orientation="horizontal"

指定线性布局方向:水平

android:orientation="vertical"

指定线性布局方向:垂直

width

属性值

解释

android:width="xxxdp"

指定线性布局的容器宽度为:xxxdp

android:width="wrap_content"

指定线性布局的容器宽度为:根据容器内容宽度大小来填充屏幕宽度

android:width="match_parent"

指定线性布局的容器宽度为:撑满整个屏幕宽度

height

属性值

解释

android:height="xxxdp"

指定线性布局的容器高度为:xxxdp

android:height="wrap_content"

指定线性布局的容器高度为:根据容器内容高度大小来填充屏幕高度

android:height="match_parent"

指定线性布局的容器高度为:撑满整个屏幕高度

background

属性值

解释

android:background="#000"

指定线性布局的背景为:黑色(rgb颜色)

android:background="@android:color/black"

指定线性布局的背景为:黑色(引用android系统自带的原始黑色)

andrid:background="@color/colorPrimary"

指定线性布局的背景为:(根据res/color.xml 中的colorPrimary所定义的颜色设置)

gravity

自身是父容器

属性值

解释

android:gravity="center"

指定线性布局中,子容器相对于父容器所在的位置为:正中心

android:gravity="cente_verticalr"

指定线性布局中,子容器相对于父容器所在的位置为:垂直方向的正中心

android:gravity="center_horizontal"

指定线性布局中,子容器相对于父容器所在的位置为:水平方向的正中心

android:gravity="left"

指定线性布局中,子容器相对于父容器所在的位置为:最左边(默认)

android:gravity="right"

指定线性布局中,子容器相对于父容器所在的位置为:最右边

android:gravity="top"

指定线性布局中,子容器相对于父容器所在的位置为:最上方(默认)

android:gravity="bottom"

指定线性布局中,子容器相对于父容器所在的位置为:最下方

layout_gravity

自身是子容器

属性值

解释

android:gravity="center"

指定线性布局中,子容器相对于父容器所在的位置为:正中心

android:gravity="cente_verticalr"

指定线性布局中,子容器相对于父容器所在的位置为:垂直方向的正中心

android:gravity="center_horizontal"

指定线性布局中,子容器相对于父容器所在的位置为:水平方向的正中心

android:gravity="left"

指定线性布局中,子容器相对于父容器所在的位置为:最左边(默认)

android:gravity="right"

指定线性布局中,子容器相对于父容器所在的位置为:最右边

android:gravity="top"

指定线性布局中,子容器相对于父容器所在的位置为:最上方(默认)

android:gravity="bottom"

指定线性布局中,子容器相对于父容器所在的位置为:最下方

layout_weight

当我们给一个view设置了android:layout_weight属性,意味着赋予它话语权,常规思维就是谁的weight大,谁说了算(空间占比大)。

属性值

解释

android:layout_weight="2"

该单元权重为2

divider

这个属性可以在LinearLayout的每个子布局直间添加一个“drawable”作为分割线,这个drawable必须有设定好的高度或者宽度,因此不能直接设置为“@color/….”

这个属性要和android:showDividers一起使用才会生效 android:showDividers有“begining”,“middle”,“end”,“none”四种值。默认值为“none”,即不显示分割线。

使用方式:

  1. 新建一个固有的width/height的Drawable:
代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>  
<shape xmlns:android="http://schemas.android.com/apk/res/android"  
    android:shape="rectangle">  
  
    <size  
        android:width="@dimen/spacing_medium"  
        android:height="@dimen/spacing_medium" />  
  
    <solid android:color="@android:color/transparent" />  
  
</shape>  

设置LinearLayout的android:divider="@drawable/spacer_medium",并设置android:showDividers

android:showDividers

属性值

解释

android:showDividers=”beginning”

只有第一个子控件上面有一条分割线

android:showDividers=”middle”

每个子空间之间都有一条分割线

android:showDividers=”end”

只有最后一个子控件有一条分割线

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022.03.07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • LinearLayout
    • 属性
    相关产品与服务
    容器服务
    腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档