当前位置: 首页 > news >正文

安卓中0dp和match_parent区别

安卓中的 0dp 和 match_parent 的区别?



第一章 前言

有段时间,看到同事在编写代码的时候,写到的是 0dp 有时候自己写代码的时候,编写的是 match_parent 发现有时候效果很类似。

后来通过一个需求案例,才发现两者有着非常明显的区别。

我现在 AI 上面问了一次,两者的区别,给出的表格如下:

特性match_parent0dp
依赖权重不依赖,直接匹配父容器,必须结合 weight 使用依赖权重
布局行为适用于所有的布局大多数出现在 LinearLayout 其实 ConstraintLayout 中也能生效
行为填满父容器剩余的空间按照权重分配剩余的空间
默认效果独立生效不设置 weight 时,尺寸为0 不可见(在LinearLayout当中)




第二章 案例需求

遇到的案例

定义一个 约束布局(ConstraintLayout)实现一个 自定义 输入框的效果:

目标效果图

在这里插入图片描述






案例1:采用 match_parent 编写

案例代码

    <androidx.constraintlayout.widget.ConstraintLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:background="@drawable/bg_edit_text"android:layout_margin="10dp"android:padding="15dp"><!--app:layout_constraintBottom_toBottomOf="parent"  控件底部和父控件底部对齐app:layout_constraintStart_toStartOf="parent"  控件左侧和父控件左侧对齐app:layout_constraintTop_toTopOf="parent"  控件顶部和父控件顶部对齐--><androidx.appcompat.widget.AppCompatTextViewandroid:id="@+id/text_view_describe"android:layout_width="wrap_content"android:layout_height="wrap_content"android:background="@color/green"android:text="姓名"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent" /><!--app:layout_constraintEnd_toEndOf="parent"  控件右侧和父控件右侧对其app:layout_constraintStart_toEndOf="@id/text_view_describe"  控件左侧和 text_view_describe 控件右侧对齐--><androidx.appcompat.widget.AppCompatEditTextandroid:layout_width="match_parent"android:layout_height="match_parent"android:background="@color/yellow"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toEndOf="@id/text_view_describe" /></androidx.constraintlayout.widget.ConstraintLayout>

在这里插入图片描述



案例2:采用 0dp 编写

    <androidx.constraintlayout.widget.ConstraintLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:background="@drawable/bg_edit_text"android:layout_margin="10dp"android:padding="15dp"><!--app:layout_constraintBottom_toBottomOf="parent"  控件底部和父控件底部对齐app:layout_constraintStart_toStartOf="parent"  控件左侧和父控件左侧对齐app:layout_constraintTop_toTopOf="parent"  控件顶部和父控件顶部对齐--><androidx.appcompat.widget.AppCompatTextViewandroid:id="@+id/text_view_describe"android:layout_width="wrap_content"android:layout_height="wrap_content"android:background="@color/green"android:text="姓名"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent" /><!--app:layout_constraintEnd_toEndOf="parent"  控件右侧和父控件右侧对其app:layout_constraintStart_toEndOf="@id/text_view_describe"  控件左侧和 text_view_describe 控件右侧对齐--><androidx.appcompat.widget.AppCompatEditTextandroid:layout_width="0dp"android:layout_height="match_parent"android:background="@color/yellow"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toEndOf="@id/text_view_describe" /></androidx.constraintlayout.widget.ConstraintLayout>

在这里插入图片描述






因此,这里需要注意的是 0dp 和 match_parent 是存在区别的,
1、不仅仅在于 线性布局 LinearLayout 当中使用。
2、在约束布局当中, 0dp 能够进行更好的适配。





http://www.dtcms.com/a/195378.html

相关文章:

  • SD框架下 LoRA 训练教程3-LORA学习率调度器(Learning Rate Scheduler)核心策略与实践指南
  • AI人工智能在教育领域的应用
  • 全球超精密机床市场深度分析:技术突破与新兴市场驱动的产业变革(2025-2031)
  • 在微创手术中使用Kinova轻型机械臂进行多视图图像采集和3D重建
  • 【专利信息服务平台-注册/登录安全分析报告】
  • 基于vue框架的订单管理系统r3771(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • 游戏引擎学习第286天:开始解耦实体行为
  • 达梦数据库多版本并发控制(MVCC)_yxy
  • 【免疫荧光优选】APC 650/660nm 激发发射光谱,Elabscience F4/80 抗体点亮巨噬细胞研究!
  • 【Ansible基础】Ansible执行流程详解:从Playbook到实际任务
  • 【基础】Windows开发设置入门7:PowerShell的相关概念和使用
  • opencv入门指南
  • UI自动化测试中,一个完整的断言应所需要考虑的问题
  • Linux基础开发工具大全
  • IEC 60601-2-16:2025 标准解析
  • muduo库Poller模块详解
  • B2C 商城转型指南:传统企业如何用 ZKmall模板商城实现电商化
  • 在多个SpringBoot程序中./相对路径下隐患、文件覆盖问题
  • 【C/C++】C++中引用类型私有成员的设计与应用
  • Git - 2( 12000 字详解 )
  • 【leetcode】144. 二叉树的前序遍历
  • SpringBoot--Bean管理详解
  • 双轨雷达波测流系统:开启水文监测新时代
  • math toolkit for real-time development读书笔记一-三角函数快速计算(1)
  • 频域中的反射-信号完整性分析
  • 如何阅读、学习 Tcc (Tiny C Compiler) 源代码?如何解析 Tcc 源代码?
  • 【踩坑】修复Cloudflare的Origin Rules端口重定向不生效
  • 【C#】 lock 关键字
  • RabbitMQ 扇形交换器工作原理详解
  • Ubuntu24.04 安装 5080显卡驱动以及cuda