安卓的常用布局看一篇就够了

这篇具有很好参考价值的文章主要介绍了安卓的常用布局看一篇就够了。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1-1  布局通用的属性

1-2   线性布局(LinearLayout)

1、常见属性:

2、线性布局的例子:

 1-3  相对布局(RelativeLayout)

1、常见属性:

2、 相对布局的例子:

 1-4  帧布局(FrameLayout)

1.常用属性

2、帧布局例子:

1-5 表格布局(TableLayout)

1、常见属性:

2、表格布局例子:

1-6 网格布局(GridLayout)

1、常用属性:

2、网格布局的例子

1-7 约束布局ConstraintLayout

 1、ConstraintLayout例子:

1-1  布局通用的属性

属性名称 功能
android:id 设置布局的标识
android:layout_width 设置布局的宽度
android:layout_height 设置布局的高度
android:layout_margin 设置当前布局与屏幕边界或与周围控件的距离
android:background 设置布局的背景
android:padding 设置当前布局与该布局中控件的距离

1-2   线性布局(LinearLayout)

        线性布局就是在该布局内的子控件按竖直或者按水平排列。

1、常见属性:

属性 功能
android:orientation 设置布局内控件的排列顺序
android:weight 在布局内设置控件权重,属性值可直接写int

注:

android:orientation属性有两个参数:
(1) vertical:表示在LinearLayout布局中从上到下竖直排序。

(2)horizontal:表示在LinearLayout布局中从左到右水平排序。

android:weight属性就是在LinearLayout布局中的控件的大小按比例来分配。

2、线性布局的例子:

        如下代码:将按钮竖直排列,并且按钮的高度按1:1:2的大小分配

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">
    <Button
        android:text="按钮1"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        />
    <Button
        android:text="按钮2"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
    />
    <Button
        android:text="按钮3"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="2"
        />
</LinearLayout>

下面是效果图: 

安卓布局,UI,android

 1-3  相对布局(RelativeLayout)

        相对布局是通过以父容器或者子控件为参照物的方式来指定子控件的位置。

1、常见属性:

属性名称 功能
android:layout_centerInParent 设置当前控件位于父布局的中央位置
android:layout_centerVertical 设置当前控件位于父布局的垂直居中位置
android:layout_centerHorizontal 设置当前控件位于父控件的水平居中位置
android:layout_above 设置当前控件位于某控件上方
android:layout_below 设置当前控件位于某控件下方
android:layout_toLeftOf 设置当前控件位于某控件左侧
android:layout_toRightOf 设置当前控件位于某控件右侧
android:layout_alignParentTop 设置当前控件是否与父控件顶端对齐
android:layout_alignParentLeft 设置当前控件是否与父控件左对齐
android:layout_alignParentRight 设置当前控件是否与父控件右对齐
android:layout_alignParentBottom 设置当前控件是否与父控件底端对齐
android:layout_alignTop 设置当前控件的上边界与某控件的上边界对齐
android:layout_alignBottom 设置当前控件的下边界与某控件的下边界对齐
android:layout_alignLeft 设置当前控件的左边界与某控件的左边界对齐
android:layout_alignRight 设置当前控件的右边界与某控件的右边界对齐

2、 相对布局的例子:

效果图:

安卓布局,UI,android

代码如下: 

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <Button
        android:layout_width="150dp"
        android:layout_height="150dp"
        android:layout_alignParentLeft="true"
        android:text="左上角"
        android:textSize="30dp" />

    <Button
        android:layout_width="150dp"
        android:layout_height="150dp"
        android:layout_alignParentBottom="true"
        android:text="左下角"
        android:textSize="30dp" />

    <Button
        android:layout_width="150dp"
        android:layout_height="150dp"
        android:layout_alignParentRight="true"
        android:text="右上角"
        android:textSize="30dp" />
    <Button
        android:layout_width="150dp"
        android:layout_height="150dp"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:text="右下角"
        android:textSize="30dp" />
    <Button
        android:layout_width="150dp"
        android:layout_height="150dp"
        android:layout_centerInParent="true"
        android:text="中间"
        android:textSize="30dp" />

</RelativeLayout>

 1-4  帧布局(FrameLayout)

        这个布局直接在屏幕上开辟出一块空白的区域,当我们往里面添加控件的时候,会默认把他们放到这块区域的左上角,而这种布局方式却没有任何的定位方式。

1.常用属性

属性名称 功能
android:foreground 设置帧布局容器的前景图像
android:foregroundGravity 设置前景图像显示的位置

2、帧布局例子:

安卓布局,UI,android

代码: 

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:foreground="@mipmap/ic_launcher"
    android:foregroundGravity="left">

    <TextView
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:background="@color/purple_700"
        tools:ignore="SpeakableTextPresentCheck" />

    <TextView
        android:layout_width="157dp"
        android:layout_height="162dp"
        android:background="@color/purple_200"
        tools:ignore="SpeakableTextPresentCheck" />
    <TextView
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:background="@color/teal_200"/>

</FrameLayout>

1-5 表格布局(TableLayout)

        表格布局(TableLayout是继承LinearLayout)就是采用行、列的形式来管理布局控件。

1、常见属性:

属性名称 功能
android:layout_column 设置该控件显示位置,如android:Layout_column="1"表示第2个位置显示
android:layout_span 设置该控件占几行,默认是1行
android:stretchColumns 设置可被拉伸的列。
android:shrinkColumns 设置可被收缩的列。
android:collapseColumns 设置可被隐藏的列。

注意:列的宽度是由该列中最宽那个决定 

2、表格布局例子:

 效果图:

安卓布局,UI,android

代码如下: 

<?xml version="1.0" encoding="utf-8"?>
<TableLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:stretchColumns="2">
    <TableRow>
        <Button
            android:layout_column="0"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:text="按钮1"
            android:textSize="30sp"
            />
        <Button
            android:layout_column="1"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:text="按钮2"
            android:textSize="30sp"
            />
    </TableRow>
    <TableRow>
        <Button
            android:layout_column="1"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:text="按钮3"
            android:textSize="30sp"
            />
        <Button
            android:layout_column="2"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:text="按钮4"
            android:textSize="30sp"
            />
    </TableRow>
    <TableRow>
      
        <Button
            android:layout_column="2"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:text="按钮5"
            android:textSize="30sp"
            />
    </TableRow>
    <TableRow>
        <Button
            android:layout_column="0"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:text="按钮6"
            android:textSize="30sp"
            />
        <Button
            android:layout_column="2"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:text="按钮7"
            android:textSize="30sp"
            />
    </TableRow>
</TableLayout>

1-6 网格布局(GridLayout)

1、常用属性:

属性名称 功能
android:layout_gravity 用来设置该View相对与父View的位置
android:orientation 设置布局内控件的排列顺序
android:columnCount 设置列数
android:rowCount 设置行数
android:layout_columnSpan 横跨几列
android:layout_rowSpan 横跨几行
android:layout_column 第几列
android:layout_row 第几行

2、网格布局的例子

效果图:

安卓布局,UI,android

 代码:

<?xml version="1.0" encoding="utf-8"?>
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:columnCount="4"
    android:orientation="horizontal"
    android:rowCount="6" >

    <TextView
        android:layout_columnSpan="4"
        android:layout_gravity="fill"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="5dp"
        android:background="#D5DEDF"
        android:text="0"
        android:textSize="50sp" />

    <Button
        android:layout_columnSpan="2"
        android:layout_gravity="fill"
        android:text="回退" />

    <Button
        android:layout_columnSpan="2"
        android:layout_gravity="fill"
        android:text="清空" />

    <Button android:text="+" />

    <Button android:text="1" />

    <Button android:text="2" />

    <Button android:text="3" />

    <Button android:text="-" />

    <Button android:text="4" />

    <Button android:text="5" />

    <Button android:text="6" />

    <Button android:text="*" />

    <Button android:text="7" />

    <Button android:text="8" />

    <Button android:text="9" />

    <Button android:text="/" />

    <Button
        android:layout_width="wrap_content"
        android:text="." />

    <Button android:text="0" />

    <Button android:text="=" />

</GridLayout> 

1-7 约束布局ConstraintLayout

        ConstraintLayout 是 Android 中的一个布局容器,它通过使用约束条件来定义视图之间的相对位置和大小关系。它的灵活性和性能使得它成为 Android 开发中常用的布局方式之一。

ConstraintLayout 的主要特点包括:

  1. 相对定位:可以通过约束条件将视图相对于父容器或其他视图进行定位,而不需要使用嵌套布局。

  2. 弹性尺寸:可以通过设置约束条件来调整视图的大小和比例,以适应不同屏幕尺寸和方向的变化。

  3. 连接线:可以使用连接线(Guideline)来辅助布局,例如将视图与屏幕的边缘或其他视图的对齐。

  4. 链式布局:可以使用链式约束来创建视图链,比如水平或垂直的线性链。

 ConstraintLayout例子:

<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:background="@color/black"
        android:id="@+id/textView3"
        android:layout_width="86dp"
        android:layout_height="75dp"
        android:text="Hello"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="1.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.99" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="86dp"
        android:background="@color/purple_500"
        android:layout_height="75dp"
        android:text="Hello"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/textView4"
        android:layout_width="75dp"
        android:layout_height="86dp"
        android:background="@color/purple_200"
        android:text="Hello"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="86dp"
        android:layout_height="75dp"
        android:text="Hello"
        android:background="@color/teal_200"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="1.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.0" />

    <TextView
        android:id="@+id/textView"
        android:layout_width="86dp"
        android:layout_height="75dp"
        android:background="@color/teal_700"
        android:text="Hello"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.99" />



</androidx.constraintlayout.widget.ConstraintLayout>

结果: 

安卓布局,UI,android

参考:2.2.5 GridLayout(网格布局) | 菜鸟教程 (runoob.com)

约束布局的使用推荐看下面的文章(写得很好): 

【Android】ConstraintLayout约束布局最全解析_android constraintlayout_Teacher.Hu的博客-CSDN博客 文章来源地址https://www.toymoban.com/news/detail-734422.html

到了这里,关于安卓的常用布局看一篇就够了的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python入门,一篇就够了

    函数必须写注释:文档注释格式 \\\'\\\'\\\'注释内容\\\'\\\'\\\' 参数中的等号两边不要用空格 相邻函数用两个空行隔开 小写 + 下划线 函数名 模块名 实例名 驼峰法 类名 结构化类型,有一系列的属性和类型 标量类型,此对象无可访问的内部对象 python 中,整型相除默认是浮点型 建议:使用

    2024年02月15日
    浏览(38)
  • Spark入门(一篇就够了)

    声明 : 本文为大数据肌肉猿公众号的《5W字总结Spark》的学习笔记,如有侵权请联系本人删除! Spark 知识图谱如下: Spark 是当今大数据领域最活跃、最热门、最高效的大数据通用计算平台之一 。 Hadoop 之父 Doug Cutting 指出:Use of MapReduce engine for Big Data projects will decline, repla

    2024年02月03日
    浏览(40)
  • 搞懂flyaway一篇就够了

    Flyway是一个用于数据库迁移的开源工具,它可以帮助开发人员轻松地管理数据库架构的变化。Flyway通过迁移来更新数据库,迁移可以使用特定于数据库的SQL语法或者用于高级数据库转换的Java编写。Flyway支持两种类型的迁移:有版本的迁移和可重复的迁移。有版本的迁移具有唯

    2024年02月03日
    浏览(42)
  • 浅谈CAS,一篇就够了

    wshanshi:喵桑说,我总结完CAS就带我去吃羊蝎子火锅…干饭那必须整起啊… CAS:Compare and Swap。从字面意义上来说,就是先进行比较,然后替换。 它是乐观锁思想的一种实现,尤其是在并发量大的业务场景下保证单个实例的原子性,使用较为频繁。java类库中java.util.concurrent.

    2024年03月13日
    浏览(41)
  • 学会大数据基础,一篇就够了

    1 Hadoop的三大组件 1) HDFS分布式文件管理系统 超大数据存储 流式存储 2) MapRuduce分布式并行编程模型 3) Yarn 资源管理和调度器 2 其他组件 4 HBase 实时读写 非关系型数据库 分布式列式数据库 基于HDFS数据存储 5 Hive 数据仓库 SQL语句转换为mapreduce任务 6 Flume 日志采集聚合 7 Sqoop 传

    2024年02月04日
    浏览(38)
  • docker入门,这一篇就够了。

    Docker容器虚拟化平台。 今天跟大家分享一下我的docker学习历程,也算是我的独特的复习笔记,我会在这一篇中讲清楚docker几乎所有的功能。不过也是我第一次写,而且是一篇两万多字的长文,花了我半个月里所有的休闲娱乐时间,所以写的不好的地方请大家见谅,也请在评论

    2024年02月03日
    浏览(56)
  • 学习SpringSecurity这一篇就够了

    案例源码地址:https://gitee.com/gzl_com/spring-security.git 1.1、概要 Spring Security 是 Spring 家族中的成员。Spring Security 基于 Spring 框架,提供了一套 Web 应用安全性的完整解决方案。 安全方面的两个主要区域是“ 认证 ”和“ 授权 ”。在Web 应用又称之为 用户认证 和 用户授权 两个部

    2024年02月11日
    浏览(54)
  • 超详细||YOLOv8基础教程(环境搭建,训练,测试,部署看一篇就够)(在推理视频中添加FPS信息)

    这篇文章将跳过基础的深度学习环境的搭建,如果没有完成的可以看我的这篇博客:超详细||深度学习环境搭建记录cuda+anaconda+pytorch+pycharm-CSDN博客 1. 在github上下载源码: GitHub - ultralytics/ultralytics: NEW - YOLOv8 🚀 in PyTorch ONNX OpenVINO CoreML TFLite 2. 安装ultralytics(YOLOv8改名为ultraly

    2024年02月05日
    浏览(50)
  • CSS基础——看这一篇就够了

    目录 一、CSS简介 1.CSS是什么? 2.CSS的作用 3.CSS的构成 二、CSS选择器 1.基础选择器 (1).标签选择器 (2)类选择器 (3)标签选择器 (4) 通配符选择器 2.复合选择器 (1)后代选择器(包含选择器) (2)子选择器 (3)并集选择器 (4)伪类选择器  三、基本属性 1.字体属性

    2024年02月09日
    浏览(59)
  • 精通线程池,看这一篇就够了

    当我们运用多线程技术处理任务时,需要不断通过new的方式创建线程,这样频繁创建和销毁线程,会造成cpu消耗过多。那么有没有什么办法 避免频繁创建线程 呢? 当然有,和我们以前学习过多连接池技术类似,线程池通过提前创建好线程保存在线程池中, 在任务要执行时取

    2023年04月17日
    浏览(89)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包