前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >android 线性布局(LinearLayout)

android 线性布局(LinearLayout)

作者头像
Twcat_tree
发布于 2022-11-30 09:34:30
发布于 2022-11-30 09:34:30
92200
代码可运行
举报
文章被收录于专栏:二猫の家二猫の家
运行总次数:0
代码可运行

线性布局是程序中最常见的布局方式之一,

线性布局可以分为水平线性布局和垂直线性布局两种,分别是通过android:orientation="horizontal"和android:orientation="vertical"来控制的

线性布局中,有 几个及其重要的参数,直接决定元素的布局和位置,这几个参数是

android:layout_gravity ( 是本元素相对于父元素的对齐方式 )

android:gravity=“bottom|right”(是本元素所有子元素的对齐方式,设置在父元素上,多个值用|隔开)

android:layout_gravity (子元素在父元素的对齐方式,设置在子元素上)

当 android:orientation=“vertical” 时, 只有水平方向的设置才起作用,垂直方向的设置不起作用。即:left,right,center_horizontal 是生效的。 当 android:orientation=“horizontal” 时, 只有垂直方向的设置才起作用,水平方向的设置不起作用。即:top,bottom,center_vertical 是生效的。

android:padding=“10dp” (是本元素所有子元素的与父元素边缘的距离,设置在父元素上)

android:layout_marginLeft=“10dp”(子元素与父元素边缘的距离,设置在子元素上)

android:orientation (线性布局以列或行来显示内部子元素)

android:layout_weight =“1” 分配分配权重值

下面举例说明

布局代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?xml version="1.0" encoding="utf-8"?>

<!-- 垂直布局 -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" > 
    
  <!--  垂直布局 -->
  <LinearLayout 
      android:layout_width="match_parent"       
      android:layout_weight="1"
      android:orientation="vertical"
      >
      <TextView 
          android:layout_height="match_parent"
          android:layout_width="match_parent"
          android:layout_weight="1"
          android:background="#ff0000"
          />
      <TextView 
          android:layout_height="match_parent"
          android:layout_width="match_parent"
          android:layout_weight="1"
          android:background="#00ff00"
          />
      <TextView 
             android:layout_height="match_parent"
          android:layout_width="match_parent"
          android:layout_weight="1"
          android:background="#0000ff"
          />     
      
      
  </LinearLayout>
        <!--  水平布局 -->    
       <LinearLayout 
          android:layout_width="match_parent"
          android:orientation="horizontal" 
          android:layout_weight="2"
          >
      
          <TextView 
          android:layout_height="match_parent"
          android:layout_width="match_parent"
          android:layout_weight="1"
          android:background="#ff0000"
          />
      <TextView 
          android:layout_height="match_parent"
          android:layout_width="match_parent"
          android:layout_weight="1"
          android:background="#00ff00"
          />
      <TextView 
          android:layout_height="match_parent"
          android:layout_width="match_parent"
          android:layout_weight="1"
          android:background="#0000ff"
          />  
       <TextView 
          android:layout_height="match_parent"
          android:layout_width="match_parent"
          android:layout_weight="1"
          android:background="#c0c0c0"
          /> 
  </LinearLayout>
   
</LinearLayout>

权重:

android:layout_weight="1"通过设置控件的layout_weight属性以控制各个控件在布局中的相对大小,线性布局会根据该控件layout_weight值与其所处布局中所有控件layout_weight值之和的比值为该控件分配占用的区域。在水平布局的LinearLayout中有4个TxtView,这4个TextView的layout_weight属性值都为1,那么这4个TextView的大小将拉伸到总大小的四分之一。如果layout_weight指为0,控件会按原大小显示,不会被拉伸;对于其余layout_weight属性值大于0的控件,系统将会减去layout_weight属性值为0的控件的宽度或者高度,再用剩余的宽度或高度按相应的比例来分配每一个控件显示的宽度或高度。

权重最基本的用法就是 对线性布局指定方向(水平或垂直)上剩余空间分配的一个规则,先把规定的大小占完,再来按比例分配剩余空间

特殊情况:

首先计算数值,所有控件加起来后可能超过屏幕大小了,这个时候剩余值就应该是负的,此时按权重分配,权重大的分得值比较大,但是负的,这个时候加上原来的值,反而变小

权重有一个很有用的特点,在一些特殊应用场景,比如有两个控件,一个设置了权重,一个不设置权重,那么这个设置权重的控件会后加载渲染。

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

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Android UI控件系列:LinearLayout(线性布局)
Android UI控件系列:LinearLayout(线性布局) LinearLayout是在线性方向显示View元素的一个ViewGroup,可以是水平方向,也可以是垂直方向 你可以重复使用Li
用户1289394
2018/02/26
6510
Android UI控件系列:LinearLayout(线性布局)
Android应用开发之线性布局
既然是线性排列,肯定就不仅只有一个方向,这里一般只有两个方向:水平方向和垂直方向。
李小白是一只喵
2022/03/21
6650
线性布局LinearLayout(二)
线性布局,顾名思义,指的是整个Android布局中的控件摆放方式是以线性的方式摆放的, 代码中加载主界面布局是从onCreate开始的:
李小白是一只喵
2020/04/24
4810
Android百分比布局之layout_weight属性
在Android中对控件布局指定尺寸时,一般有两种方式:一种设定为自适应布局,即match_parent(fill_parent)或者wrap_content,通过根据父布局大小或者自己内容来产生一个动态尺寸;另外一种通过指定一个具体数值的方式定义成固定布局,单位可以是px/dp/sp等。这在绝大数情况下是可以解决问题的。
Twcat_tree
2022/11/30
7260
Android百分比布局之layout_weight属性
2014-10-25Android学习------布局处理(-)
我学习Android都是结合源代码去学习,这样比较直观,非常清楚的看清效果,觉得很好,今天的学习源码是网上找的个HealthFood 源码 百度搜就知道很多下载的地方
wust小吴
2022/03/07
1.4K0
2014-10-25Android学习------布局处理(-)
【Android开发学习笔记之一】5大布局方式详解
Android中常用的5大布局方式有以下几种: 线性布局(LinearLayout):按照垂直或者水平方向布局的组件。 帧布局(FrameLayout):组件从屏幕左上方布局组件。 表格布局(TableLayout):按照行列方式布局组件。 相对布局(RelativeLayout):相对其它组件的布局方式。  绝对布局(AbsoluteLayout):按照绝对坐标来布局组件。 1. 线性布局 线性布局是Android开发中最常见的一种布局方式,它是按照垂直或者水平方向来布局,通过“android:orien
Angel_Kitty
2018/04/09
8100
【Android开发学习笔记之一】5大布局方式详解
AndroidStudio入门基础(一)——基础布局
上学期学习了Android,从一开始的什么都不懂到后来成功做出一个课程设计作品,回忆起来一路还是充满坎坷和辛酸泪的啊。
全栈程序员站长
2022/06/30
1.2K0
AndroidStudio入门基础(一)——基础布局
Android入门教程 | UI布局之LinearLayout 线性布局
LinearLayout 里面可以放置多个 view(这里称为子view,子项)。 子 view 可以是TextView,Button,或者是 LinearLayout,RelativeLayout 等等。 它们将会按顺序依次排布为一列或一行。 接下来介绍一些在 xml 中的设置。
Android_anzi
2021/11/25
1.1K0
Android界面布局属性layout_gravity和gravity的区别
1、android:layout_gravity是设置该控件相对于父容器对齐方式; 2、android:gravity是设置子元素在该容器内的对齐方式。 3、layout_gravity和gravity可以设置的值:top、bottom、left、right、center_vertical、fill_vertical、center_horizontal、fill_horizontal、center、fill、clip_vertical。(一个属性可以包含多个值,需用 “|” 分开),其具体作用如下:
全栈程序员站长
2022/09/17
1.3K0
Android界面布局属性layout_gravity和gravity的区别
你真的了解android的layout_weight属性吗?
咦?怎么会出现这种情况?不是first占比是1/3吗?second占比是2/3吗?还有不是应该layout_width不是应该设置为0dp吗?
砖业洋__
2023/05/06
1880
你真的了解android的layout_weight属性吗?
android常用布局详解「建议收藏」
在一个Android应用程序中,用户界面通过View和ViewGroup对象构建。Android中有很多种View和ViewGroup,他们都继承自View类。View对象是Android平台上表示用户界面的基本单元。
全栈程序员站长
2022/09/05
2.1K0
android常用布局详解「建议收藏」
Android基础_2 Activity线性布局和表格布局
在activity的布局中,线性布局和表格布局是最简单的,这次分别从线性布局,表格布局以及线性布局和表格混合布局做了实验,实验中只需要编写 相应的xml的代码,java代码不需要更改,因为我们这里只是练习android的界面设计。参考的资料为mars老师的教程。
shirayner
2018/08/10
7090
Android基础_2    Activity线性布局和表格布局
LinearLayout(线性布局)
要点: android:orientation="vertical"垂直线性布局,"horizontal"水平线性布局 android:gravity="top"(buttom、left、right、center_vertical、fill_vertical、center_horizontal、fill_horizontal、center、fill、clip_vertical、clip_horizontal)控制布局中控件的对齐方式。如果是没有子控件的控件设置此属性,表示其内容的对齐方式,比如说TextVi
欢醉
2018/01/22
7660
LinearLayout(线性布局)
Android基础总结(3)——UI界面布局
  Android的UI设计有好几种界面程序编写方式。大体上可分为两大类:一类是利用可视化工具来进行,允许你进行拖拽控件来进行布局;还有一类是编写xml文档来进行布局。这两种方法可以相互转换。 1、常见的控件的使用方法 TextView Button:一般需要注册监听器来对点击按键的事件做出响应 EditText:允许用户在控件里输入和编辑内容,并可以在在程序中对这些内容进行处理。此外,可以使用android:hint属性来指定一段提示性的文本。 ImageView:展示图片的一个控件。通过android:
mukekeheart
2018/02/27
1.6K0
Android基础总结(3)——UI界面布局
Android开发第二次课 布局方式
xmlns:android:声明一个命名空间前缀,叫作android,http://schemas.android.com/apk/res/android,
用户9184480
2024/12/19
600
Android精通:View与ViewGroup,LinearLayout线性布局,RelativeLayout相对布局,ListView列表组件
对于Android应用程序中,所有用户界面元素都是由View和ViewGroup对象构建的。View是绘制在屏幕上能与用户进行交互的一个对象。而对于ViewGroup来说,则是一个用于存放其他View和ViewGroup对象的布局容器!
达达前端
2019/07/03
1.9K0
Android精通:View与ViewGroup,LinearLayout线性布局,RelativeLayout相对布局,ListView列表组件
详解Android布局中gravity与layout_gravity属性[通俗易懂]
在android布局中,我们经常会用到“重心”-gravity这个属性。但是gravity有不同的类型:
全栈程序员站长
2022/09/14
2K0
详解Android布局中gravity与layout_gravity属性[通俗易懂]
最简单最常用的LinearLayout线性布局
良好的布局设计对于UI界面至关重要,在前面也简单介绍过,目前Android中的布局主要有6种,创建的布局文件默认为RelativeLayout相对布局,而在前面的示例学习中,我们只是简单利用了一下LinearLayout线性布局,那么接下来分别对齐进行详细学习。 一、认识LinearLayout 线性布局是Android中较为常用的布局方式,使用<LinearLayout>标签。线性布局主要有两种形式,一种是水平线性布局,一种是垂直线性布局。需要注意的是Android的线性布局不会换行,当组
分享达人秀
2018/02/02
2.9K0
最简单最常用的LinearLayout线性布局
速读原著-Android应用开发入门教程(布局(Layout))
布局(Layout)是各个控件在屏幕上的位置关系,视图组的几个扩展类与布局相关。在 Android 中布局通常有以下几种不同的情况:
cwl_java
2020/02/13
8780
Android布局详解
Android基本布局分别是:线性布局LinearLayout、相对布局RelativeLayout、帧布局FrameLayout、表格布局TableLayout、网格布局GridLayout。
全栈程序员站长
2022/09/05
1.5K0
推荐阅读
相关推荐
Android UI控件系列:LinearLayout(线性布局)
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文