如何正确使用padding和margin
前面两期我们学习了LinearLayout线性布局的方向、填充模型、权重和对齐,那么本期我们来学习LinearLayout线性布局的内边距和外边距。
关于padding和margin,很多同学傻傻分不清,相信通过今天的学习可以正确使用padding和margin。
一、内边距padding
默认情况下,组件相互之间是紧紧靠在一起的。但是有时候需要组件各边之间有一定的内边距,那就可以通过以下几个属性来设置,内边距的值是具体的尺寸,如5dp。
- android:padding:为组件的四边设置相同的内边距。
- android:paddingLeft:为组件的左边设置内边距。
- android:paddingRight:为组件的右边设置内边距。
- android:paddingTop:为组件的上边设置内边距。
- android:paddingBottom:为组件的下边设置内边距。
内边距的原理如下图所示:
接下来通过一个简单的示例程序来学习android:padding的使用用法。
继续使用app/main/res/layout/目录下的activity_main.xml文件,在其中填充如下代码片段:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="padding"
android:padding="20dp"
android:background="#00ffff"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="normal"
android:background="#caa926"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="padding"
android:paddingLeft="50dp"
android:paddingRight="50dp"
android:paddingTop="50dp"
android:paddingBottom="50dp"
android:background="#00f05f"/>
</LinearLayout>
运行程序,可以看到下图所示界面效果:
二、外边距margin
通过设置内边距,只能设置内容相对于组件之间的距离,而组件之间仍然是相邻挨着的。在实际开发中,有时候需要组件之间有一定的间隔距离,那么就需要用到外边距了,可以通过以下几个属性来设置。
- android:layout_margin:本组件离上下左右各组件的外边距。
- android:layout_marginStart:本组件离开始的位置的外边距。
- android:layout_marginEnd:本组件离结束位置的外边距。
- android:layout_marginBottom:本组件离下部组件的外边距。
- android:layout_marginTop:本组件离上部组件的外边距。
- android:layout_marginLeft:本组件离左部组件的外边距。
- android:layout_marginRight:本组件离右部组件的外边距。
外边距的原理如下图所示:
接下来通过一个简单的示例程序来学习android:layout_margin的使用用法。
将上面的示例程序的布局文件修改一下,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="margin 20dp"
android:layout_margin="20dp"
android:background="#00ffff"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="normal"
android:background="#caa926"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="margin 50dp"
android:layout_marginLeft="50dp"
android:layout_marginRight="50dp"
android:layout_marginTop="50dp"
android:layout_marginBottom="50dp"
android:background="#00f05f"/>
</LinearLayout>
重新运行程序,可以看到下图所示界面效果:
到此,关于LinearLayout线性布局的内边距和外边距已经学习完成,你都掌握了吗?padding和margin的区别是什么?
如果把布局的内边距和外边距放在一张图中比较会更加直观,如下图所示:
也有这种说法:margin代表的是偏移,padding代表的是填充。当然,你也可以根据自己的理解来总结。
- mac:在当前文件夹打开terminal终端
- 斯诺登研发黑客警报App上架 监测功能引发争议
- JMS + jboss EAP 6.2 示例
- Maven Compilation error [package org.testng.annotations does not exist]
- 查看jar包的jdk版本并降级
- ejb3: message drive bean(MDB)示例
- java提示找不到或无法加载主类
- 学Java有什么好方法?刻苦学技术让我最终成为自信的码农
- expect+scp传输文件发现文件丢失
- IBM WebSphere MQ 7.5基本用法
- QPS的计算
- Django----中间件详解
- linux 添加用户到sudo中
- 机器学习之白话adaboost元算法
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- [OHIF-Viewers]医疗数字阅片-医学影像-redux-token实操(1)
- [OHIF-Viewers]医疗数字阅片-医学影像-屏蔽StudyList病例列表
- Ant Design for Vue的Table组件一列显示多个参数
- 【React】React-router的使用记录
- Blazor带我重玩前端(四)
- Android绘制系统简介
- E: Sub-process /usr/bin/dpkg returned an error code (1) 解决方案
- Linux 如何使用包管理器安装 Node.js
- CSS画图
- R语言聚类算法的应用实例
- Python时间序列选择波动率预测指数收益算法分析案例
- Linux 常用系统工作命令-date
- R使用LASSO回归预测股票收益
- Linux 常用系统工作命令-reboot、poweroff、wget
- Node.js + Socket.io 实现一对一即时聊天