当前位置:

首页 > 系统应用 > 2.2.1 LinearLayout(线性布局)

2.2.1 LinearLayout(线性布局)

本节引言 本节开始讲Android中的布局,Android中有六大布局,分别是: LinearLayout(线性布局),RelativeLayout(相对布局),TableLayout(表格布局) FrameLayout(帧布局),AbsoluteLayout(绝对布局),GridLayout(网格

本文目录

    本节引言

    本节开始讲Android中的布局,Android中有六大布局,分别是: LinearLayout(线性布局),RelativeLayout(相对布局),TableLayout(表格布局) FrameLayout(帧布局),AbsoluteLayout(绝对布局),GridLayout(网格布局) 而今天我们要讲解的就是第一个布局,LinearLayout(线性布局),我们屏幕适配的使用 用的比较多的就是LinearLayout的weight(权重属性),在这一节里,我们会详细地解析 LinearLayout,包括一些基本的属性,Weight属性的使用,以及比例如何计算,另外还 会说下一个用的比较少的属性:android:divider绘制下划线!

    1.本节学习图

    2.weight(权重)属性详解:

    ①最简单用法:

    如图:

    实现代码:

       
        
        
      

    如果想做出第一种那种 1:1 的效果,其实很直接:把两个 LinearLayout 的 weight 分别都设成 1 就行了。这个用法可以顺手总结一下:如果是按比例划分水平方向,先把相关 View 的 android:width 设为 0dp,再通过 android:weight 来写对应的比例;同理,竖直方向也是一样的思路,把 android:height 设为 0dp,然后再设置 weight 属性即可。也可以自己动手写一个竖直方向的等比例划分,实际试一遍,这个用法会更容易吃透。

    ②weight属性详解:

    当然,如果我们不适用上述那种设置为0dp的方式,直接用wrap_content和match_parent的话, 则要接着解析weight属性了,分为两种情况,wrap_content与match_parent!另外还要看 LinearLayout的orientation是水平还是竖直,这个决定哪个方向等比例划分

    1)wrap_content比较简单,直接就按比例的了

    实现代码:

        
        
             
             
      
     

    2)match_parent(fill_parent):这个则需要计算了

    我们写这段简单的代码:

        
        
             
             
     
     

    运行效果图:

    这时候很多人都会冒出同一个问题:按理说比例不是 2:1 吗?那 three 到底跑哪儿去了?代码里明明写了 three,也明确设成了 3,可结果看起来却不对劲——原本 1:2:3,最后怎么像是变成了 2:1:0?这事儿还真不是表面看起来那么直接,得算一遍才看得明白。常见的解释算法网上有好几种,这里保留一种更容易看懂的说法: step 1:三个控件一开始都是fill_parent,但屏幕可只有一个,所以相当于 1 - 3 = - 2 fill_parent step 2:接下来按比例拆分,分别是1/6、2/6、3/6 step 3:按照先到先得的顺序来分,先给one,计算:1 - 2 * (1/6) = 2/3 fill_parent 然后轮到two,计算:1 - 2 * (2/6) = 1/3 fill_parent 最后才是three,计算:1 - 2 * (3/6) = 0 fill_parent step 4:所以最终结果就是:one拿到两份,two拿到一份,three什么都没有 这样一来,three为什么没有显示,原因就清楚了。要是看到这里还是有点绕,也正常,后面再多看几个例子,这个过程很快就能顺过来。

    比例为:1:1:1

    按照上面的计算方法算一次,结果是:1/3 1/3 1/3,没错

    接着我们再试下:2:3:4

    计算结果:5/9 3/9 1/9,对比效果图,5:3:1,也没错,所以这个计算方法你可得mark下了!

    ③Ja va代码中设置weight属性:

    setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,     
            LayoutParams.WRAP_CONTENT, 1)); 

    3.为LinearLayout设置分割线

    很多界面开发中都会设置一些下划线,或者分割线,从而使得界面更加整洁美观,比如下面的酷狗 音乐的注册页面:

    对于这种线,我们通常的做法有两种 ①直接在布局中添加一个view,这个view的作用仅仅是显示出一条线,代码也很简单:

      

    这个是水平方向上的黑线,当然你也可以改成其他颜色,或者使用图片

    ②第二种则是使用LinearLayout的一个divider属性,直接为LinearLayout设置分割线 这里就需要你自己准备一张线的图片了 1)android:divider设置作为分割线的图片 2)android:showDividers设置分割线的位置,none(无),beginning(开始),end(结束),middle(每两个组件间) 3)dividerPadding设置分割线的Padding

    使用示例:

    实现代码:

      
    

    4.LinearLayout的简单例子:

    实现代码如下:

        
        
            
            
            

    5.注意事项:

    使用Layout_gra vity的一个很重要的问题!!! 问题内容: 在一个LinearLayout的水平方向中布置两个TextView,想让一个左,一个右,怎么搞? 或许你会脱口而出:"gra vity设置一个left,一个right就可以啦!" 真的这么简单?你试过吗?写个简单的Layout你就会发现,事与愿违了: 代码如下:

      
      
      
    

    运行结果图:

    看到这里你会说:哎呀,真的不行耶,要不在外层LinearLayout加个gra vity=left的属性,然后设置第二个 TextView的layout_gra vity为right,恩,好我们试一下:

      
      
      
     

    结果还是一样:

    好吧,没辙了,怎么办好?

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

    然而,这方法好像并没有什么卵用。比如: 如果只能竖直方向设置左右对齐的话,就会出现下面的效果:

    这显然不是我们要的结果把! 综上,要么按照上述给出的规则来布局,不过对于这种情况还是使用相对布局RelativeLayout把! 网上没给出具体的原因,都是说这样改有人说这个和orientation的优先级有关 ,暂且先mark下来吧,后续如果知道原因的话再解释!前面屏幕适配也说过了,布局还是建议使用 RelativeLayout!

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    系统应用
    相关文章 更多
    LineageOS上线网页刷机工具 新增三星、小米等品牌
    LineageOS上线网页刷机工具 新增三星、小米等品牌

    LineageOS夏日更新上线网页端刷机工具,支持Fastboot、ADB及三星Odin协议。更新管理器采用Material3设计,标注安全公告等级并启用流式下载。基于Android17的LineageOS24开发启动,安全补丁适配季度更新。相册支持动态照片,新增三星、小米等多款机型。

    Yandex浏览器官网登录与在线体验入口
    Yandex浏览器官网登录与在线体验入口

    Yandex浏览器官方网站登录入口是https://www.yondex.net/,提供多语言下载、账户同步、广告拦截、Turbo模式及隐私保护等功能,支持跨设备数据同步与安全浏览。

    2026年AO3镜像最新地址及稳定入口
    2026年AO3镜像最新地址及稳定入口

    ao3镜像2026最新入口包括主站archiveofourown.org、镜像站ao3mirror.com和xiaozhan.icu,建议收藏备用并根据网络情况切换使用。

    Win10搜索不到蓝牙耳机的排查与连接方法
    Win10搜索不到蓝牙耳机的排查与连接方法

    面向在Windows 10系统中无法发现蓝牙耳机的用户,本文提供从耳机配对模式到系统设置的完整排查路径。首先确保耳机已充电并进入可被搜索的配对状态,断开与其他设备的连接;随后在Win10设置中开启蓝牙并添加设备。若蓝牙开关缺失或适配器异常,需通过设备管理器检查驱动状态并更新,以恢复正常的蓝牙音频设备识别功能。

    Win10蓝牙耳机麦克风没声音?检查输入设备与权限设置
    Win10蓝牙耳机麦克风没声音?检查输入设备与权限设置

    面向在Windows 10系统中遇到蓝牙耳机能听声但无法录音的用户,本文解决因输入通道选择错误、隐私权限关闭或语音连接缺失导致的麦克风无声问题。关键步骤包括:在系统声音设置中正确选择Headset Microphone或Hands-Free AG Audio作为输入设备;在隐私设置中开启应用访问麦克风权限;确认蓝牙状态包含语音连接而非仅音乐连接,必要时重新配对或更新驱动。注意Stereo模式不支持麦克风输入,勿为音质牺牲通话功能。

    Win11打开服务管理器的两种方法:运行命令与计算机管理
    Win11打开服务管理器的两种方法:运行命令与计算机管理

    面向需要在Windows 11中查看或配置系统服务的用户,本文提供两种快速进入服务管理器的路径。一是通过Win+R运行services.msc直接打开,适合快速访问;二是从开始菜单进入计算机管理,再展开服务和应用程序找到服务列表,适合在统一管理界面中操作。文中说明查看状态通常无需特殊权限,而修改服务设置可能需要管理员账户,帮助用户根据实际需求选择合适入口。

    fences怎么彻底删除 清理残留文件
    fences怎么彻底删除 清理残留文件

    想知道Fences怎么彻底删除?本教程详解Windows 11下卸载Fences、使用官方Purge工具清理残留、删除布局备份及日志的步骤,助您干净移除软件并恢复桌面原生体验。

    Win11打开组策略的命令及家庭版无法使用说明
    Win11打开组策略的命令及家庭版无法使用说明

    面向需要在Windows 11中调整系统设置的用户,介绍通过运行命令gpedit.msc快速打开本地组策略编辑器的方法。该功能仅内置于专业版、企业版和教育版,家庭版通常不包含此工具,运行报错并非系统故障。本文详解正确的命令输入格式、界面确认方式以及通过任务栏搜索的替代路径,并指导家庭版用户如何查看系统版本以选择对应的设置入口或升级方案。

    Win11家庭版找不到组策略编辑器怎么办
    Win11家庭版找不到组策略编辑器怎么办

    面向使用Windows 11家庭版或家庭中文版的用户,解决运行gpedit.msc提示找不到文件的问题。该现象源于版本功能限制,修改文件名或重装同版本系统均无效。本文指导用户先通过“设置-关于”确认系统版本,日常配置优先在“设置”应用中完成;若确需本地组策略功能,建议通过官方渠道升级至专业版,并警示避免使用来源不明的第三方安装工具。

    fences怎么退出 关闭后台运行程序
    fences怎么退出 关闭后台运行程序

    想让 Fences 暂时停止接管桌面?本文详解 Windows 11/10 下关闭 Fences 总开关、禁用开机启动及验证后台状态的操作步骤,区分临时停用与彻底卸载,确保桌面文件安全。

    查看更多
    精品专题 更多
    装机必备
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows
    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程
    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    Mac软件 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    Aperty macOS版
    Aperty macOS版
    macOS

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    WINDOWS 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    PixTV 网页版
    PixTV 网页版
    Windows

    PixTV 是一款在浏览器中使用的 AI 视觉内容创作平台,提供图片、视频、音频、文字生成、AI 分镜、局部重绘、提示词反推和无限画布等工具,适合短剧、漫剧、广告及社交媒体内容制作。