Android中的常用布局

简介: Android中的常用布局

Android常用布局


Android系统中为我们提供的五大布局:LinearLayout(线性布局)、RelativeLayout(相对布局)、FrameLayout(帧布局)、AbsoluteLayout(绝对布局)、TablelLayout(表格布局)其中最常用的的是LinearLayout、TablelLayout和RelativeLayout。这些布局都可以嵌套使用。


一、布局介绍



布局

介绍/特点

应用场景

LinerLayout(线性布局)

控件排列方式 = 线性的垂直/水平

布局内控件按照线性垂直/水平排

RelativeLayout (相对布局)

根据参照物(某个控件id)来确定控件的位置

控件之间存在位置上的联系

FrameLayout(帧布局)

放入的控件都被放在左上角且后加入的控件会重叠覆盖在之前加入的控件上面

控件相互叠加

TableLayout(表格布局)

通过表格形式布局控件位置

控件之间存在固定的位置关系

AbsoluteLayout(绝对布局

采用坐标的方式定位控件,左上角时(0,0)往右X轴递增往下Y轴递增

已过时

二、布局属性


1、公有属性


即各个布局都存在的属性


属性

介绍

使用

layout_width 、layout_height

设置布局的宽/高

android:layout_width=“wrap_content”//所需的最小尺寸 android:layout_height=“match_parent”//充满父布局 android:layout_width=“65dp”//固定宽高

layout_margin+方位

设置控件边缘相对于父控件的边距

layout_margin=“10dp”//设置四面边距layout_marginTop=“10dp”//设置上边距layout_marginBottom=“10dp”//设置下边距layout_marginLeft=“10dp”//设置左边距layout_marginRight=“10dp”//设置右边距

padding +方位

设置控件内容的边缘相对于控件的边距

layout_padding=“10dp”//设置四面边距layout_paddingTop=“10dp”//设置上边距layout_paddingBottom=“10dp”//设置下边距layout_paddingLeft=“10dp”//设置左边距layout_paddingRight=“10dp”//设置右边距

layout_gravity

控件相对父控件的位置

android:layout_gravity=“center”//居中android:layout_gravity=“center_horizontal”//水平居中android:layout_gravity=“center_vertival”//垂直居中

gravity

控件内容相对控件的位置

android:layout_gravity=“center”//居中android:layout_gravity=“center_horizontal”//水平居中android:layout_gravity=“center_vertival”//垂直居中


2、特有属性


布局

特有属性

用法

LinerLayout(线性布局

orientation(设置控件的排列方式)layout_weight(根据设置的权重,将布局控件按比例分配,主要设置在布局内的控件中)

android:orientation=“horizontal”//水平android:orientation=“vertical”//垂直 android:layout_weight=“1.0”//设置权重


RelativeLayout(相对布局)

layout_alignParentXXX(当前控件对齐父控件的X方位)

android:layout_alignParentTop=“true”//当前控件顶端对齐父控件顶端 android:layout_alignParentBottom=“true”//当前控件底端对齐父控件底端android:layout_alignParentLeft=“true”//当前控件左端对齐父控件左端android:layout_alignParentRight=“true”//当前控件右端对齐父控件右端android:layout_centerInParent=“true”//当前控件位于父控件正居中的位置android:layout_centerVertival=“true”//当前控件位于父控件垂直居中的位置android:layout_centerHorizontal=“true”//当前控件位于父控件水平居中的位置

RelativeLayout(相对布局)

layout_X(当前控件位于某个控件的X方位)

android:layout_above=“@id/text”//当前控件位于text控件的上方 android:layout_below=“@id/text”//当前控件位于text控件的下方 android:layout_toLeftOf=“@id/text”//当前控件位于text控件的左方 android:layout_toRightOf=“@id/text”//当前控件位于text控件的右方 android:layout_alignTop=“@id/text”//当前控件的顶部 对齐 text控件的顶部 android:layout_alignRight(End)=“@id/text”//当前控件的右部 对齐 text控件的右部 android:layout_alignBottom=“@id/text”//当前控件的底部 对齐 text控件的底部 android:layout_alignLeft(Start)=“@id/text”//当前控件的左部 对齐 text控件的左部

AbsoluteLayout(绝对布局)

layout_x(指定控件的x坐标)

layout_y(指定控件的Y坐标)

android:layout_x=“50dp” android:layout_y=“50dp”

TableLayout(表格布局)

TableLayout的行TableRow = 一个水平排列的线性布局继承自线性布局故具备线性布局的全部属性


FrameLayout

只具备基础属性


5个布局元素可相互嵌套使用,从而实现各种不同的效果


三、选择器(selector)


1.作用


通过设置选择器(selector)可使控件 在不同操作下(默认、点击等) 显示不同样式


通过 xml编写 = selector.xml


2.属性


XML属性

说明


android:drawable

放一个drawable资源


android:state_pressed

按下状态,如一个按钮触摸或者点击。


android:state_focused

取得焦点状态,比如用户选择了一个文本框。android:state_hovered

光标悬停状态,通常与focused state相同,它是4.0的新特性


android:state_selected

选中状态


android:state_enabled

能够接受触摸或者点击事件


android:state_checked

被checked了,如:一个RadioButton可以被check了。


android:state_enabled

能够接受触摸或者点击事件



注:上述所有属性的取值 : boolean属性 = true、false


3.实例说明


在drawable添加 selector.xml 资源文件

button_selector.xml:


<?xml version="1.0" encoding="UTF-8"?>
< selector xmlns:android="http://schemas.android.com/apk/res/android">
 < !-- 指定按钮按下时的图片 -->
 <item android:state_pressed="true"  
       android:drawable="@drawable/start_down"
 />
 < !-- 指定按钮松开时的图片 --> 
 <item android:state_pressed="false"
       android:drawable="@drawable/start"
 />
< /selector>


在布局文件main.xml中控件的属性设置:


<Button
  android:id="@+id/startButton"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:background="@drawable/button_selector" 
/>


四、布局形状(Shape)


作用:设置布局的颜色、边框线

使用:通过 xml编写 = shape.xml

具体使用

<shape xmlns:android="http://schemas.android.com/apk/res/android">


//默认颜色
<solid android:color="#876543"/>
//哪个方向有边框线
  <padding
        android:bottom="0dp"
        android:left="1dp"
        android:right="1dp"
        android:top="1dp" />
     //边框线颜色、大小
    <stroke
        android:width="1dp"
        android:color="#000000" />


在布局文件main.xml中控件的属性设置:


<Button
  android:id="@+id/startButton"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:background="@drawable/layout_shape"/>
相关文章
|
9月前
|
XML Android开发 数据安全/隐私保护
10. 【Android教程】网格布局 GridLayout
10. 【Android教程】网格布局 GridLayout
356 1
|
5月前
|
ARouter Android开发
Android不同module布局文件重名被覆盖
Android不同module布局文件重名被覆盖
|
7月前
|
移动开发 监控 前端开发
构建高效Android应用:从优化布局到提升性能
【7月更文挑战第60天】在移动开发领域,一个流畅且响应迅速的应用程序是用户留存的关键。针对Android平台,开发者面临的挑战包括多样化的设备兼容性和性能优化。本文将深入探讨如何通过改进布局设计、内存管理和多线程处理来构建高效的Android应用。我们将剖析布局优化的细节,并讨论最新的Android性能提升策略,以帮助开发者创建更快速、更流畅的用户体验。
95 10
|
9月前
|
Android开发
08. 【Android教程】相对布局 RelativeLayout
08. 【Android教程】相对布局 RelativeLayout
118 0
|
5月前
|
ARouter Android开发
Android不同module布局文件重名被覆盖
Android不同module布局文件重名被覆盖
262 0
|
7月前
|
编解码 Android开发
【Android Studio】使用UI工具绘制,ConstraintLayout 限制性布局,快速上手
本文介绍了Android Studio中使用ConstraintLayout布局的方法,通过创建布局文件、设置控件约束等步骤,快速上手UI设计,并提供了一个TV Launcher界面布局的绘制示例。
125 1
|
8月前
|
Android开发 Kotlin
kotlin开发安卓app,如何让布局自适应系统传统导航和全面屏导航
使用`navigationBarsPadding()`修饰符实现界面自适应,自动处理底部导航栏的内边距,再加上`.padding(bottom = 10.dp)`设定内容与屏幕底部的距离,以完成全面的布局适配。示例代码采用Kotlin。
189 15
|
7月前
|
XML 数据可视化 API
Android经典实战之约束布局ConstraintLayout的实用技巧和经验
ConstraintLayout是Android中一款强大的布局管理器,它通过视图间的约束轻松创建复杂灵活的界面。相较于传统布局,它提供更高灵活性与性能。基本用法涉及XML定义约束,如视图与父布局对齐。此外,它支持百分比尺寸、偏移量控制等高级功能,并配有ConstraintSet和编辑器辅助设计。合理运用可显著提高布局效率及性能。
328 0
|
7月前
|
Android开发
AutoX——当Android中clickable属性显示为false,实际可点击的布局如何处理
AutoX——当Android中clickable属性显示为false,实际可点击的布局如何处理
88 0
|
8月前
|
XML Android开发 数据安全/隐私保护
使用RelativeLayout布局Android界面
使用RelativeLayout布局Android界面

热门文章

最新文章

  • 1
    【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 2
    Android历史版本与APK文件结构
  • 3
    【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
  • 4
    当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
  • 5
    APP-国内主流安卓商店-应用市场-鸿蒙商店上架之必备前提·全国公安安全信息评估报告如何申请-需要安全评估报告的资料是哪些-优雅草卓伊凡全程操作
  • 6
    【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
  • 7
    【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 8
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
  • 9
    Cellebrite UFED 4PC 7.71 (Windows) - Android 和 iOS 移动设备取证软件
  • 10
    【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
  • 1
    android FragmentManager 删除所有Fragment 重建
    17
  • 2
    Android实战经验之Kotlin中快速实现MVI架构
    24
  • 3
    即时通讯安全篇(一):正确地理解和使用Android端加密算法
    28
  • 4
    escrcpy:【技术党必看】Android开发,Escrcpy 让你无线投屏新体验!图形界面掌控 Android,30-120fps 超流畅!🔥
    40
  • 5
    【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
    131
  • 6
    Cellebrite UFED 4PC 7.71 (Windows) - Android 和 iOS 移动设备取证软件
    40
  • 7
    【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    55
  • 8
    Android历史版本与APK文件结构
    155
  • 9
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    46
  • 10
    【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
    40