android padding 和 margin的区别
前面两期我们学习了LinearLayout线性布局的方向、填充模型、权重和对齐,那么本期我们来学习LinearLayout线性布局的内边距和外边距。
关于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"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="padding"android:padding="20dp"android:background="#00ffff"/><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="normal"android:background="#caa926"/><TextViewandroid: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"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="margin 20dp"android:layout_margin="20dp"android:background="#00ffff"/><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="normal"android:background="#caa926"/><TextViewandroid: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代表的是填充。当然,你也可以根据自己的理解来总结。
今天就先到这里,如果有问题欢迎留言一起探讨,也欢迎加入Android零基础入门技术讨论微信群,共同成长!
此文章版权为微信公众号分享达人秀(ShareExpert)——鑫鱻所有,若转载请备注出处,特此声明!
android padding 和 margin的区别相关推荐
- 【css】padding 和 margin的区别
css中有有一对经常是一起出现的属性:padding和margin,接下来我们以一个例子来看一下两个属性的作用及其区别. 实例演示: 使用属性前: 代码实现: <!DOCTYPE html> ...
- jsp+左间距_jsp 中padding 与margin的区别
本文向大家简单介绍一下 Margin 和 Padding 属性中四个值的先后顺序及区别, Margin 和 Padding 属性中四个值的顺序为:上右下左,按照顺时针方向罗列的. AD: 你对 Mar ...
- html中padding和margin的区别和用法与存在的bug消除
关于margin: 在需要border外侧添加距离时. 空白处不需要背景时. 相连的两个部分的地方需要加外边的边距时使用. 关于padding: 在需要border内侧添加距离时. 空白处需要背景时. ...
- 属性padding和margin的区别
因为实际在使用中经常会遇到还是很容易搞混,不知道该如何去选择边距的情况,所以单独把这个课题拎出来调查,实践了一番. 1. margin,指的是当前控件和父控件的边距. 举一个例子说明: <Rel ...
- android:padding和android:margin的区别
转载请说明博客地址:http://blog.csdn.net/qq_32059827/article/details/51487997 看了网上的类似博客,并没有给出确定的区别.现在具体分析一下pad ...
- Android布局中margin与padding的区别
我们知道Android开发不仅仅有代码的动态控制,而且还涉及到布局的静态搭建(xml).几乎在每一个xml文件中,我们总会看到margin和padding这两个属性,今天让我们初步探究一下它们之间的区 ...
- android padding margin的区别,如何正确使用padding和margin
原标题:如何正确使用padding和margin 前面两期我们学习了LinearLayout线性布局的方向.填充模型.权重和对齐,那么本期我们来学习LinearLayout线性布局的内边距和外边距. ...
- android开发之android:padding和android:margin的区别
android:layout_margin:指该控件距离父控件的边距, android:padding: 指该控件内部内容,如文本距离该控件的边距.
- android padding作用,android:padding和android:layout_margin的区别
简单点来说: android:padding是内边距,控件本身的内容与控件边缘的距离. android:layout_margin是外边距,控件与其他控件之间的距离. 下面以具体的例子来进行解释: 1 ...
最新文章
- cmake 静态编译 简介
- Eigen 学习笔记
- mysql 插入数据 自增长_MySQL ------ 插入数据(INSERT和insert select)(二十)
- 征服数据科学面试的10个小技巧(附资源)
- 时间序列研(part5)--四种典型的非平稳随机过程
- python播放视频代码_python实现实时视频流播放代码实例
- supervisor 重启_每日一说:说一下supervisor进程管理工具
- C# ASP.NET 权限设计 完全支持多数据库多语言包的通用权限管理系统组件源码
- 《逆袭进大厂》第二弹之C++进阶篇59问59答(超硬核干货)
- python 可视化界面 打开excel_python如何将excel数据处理可视化
- linux下shell脚本编程2
- Axure 9 实战案例,动态面板的应用 3,京东的拖动拼图登录验证
- 试题库管理系统--数据库设计
- 【软件构造】过程与配置管理
- 专访吴军:“腾讯无2B基因,谷歌太平庸”,“我说错了吗?”
- MySQL常见运算符详解
- Monocular Human Pose Estimation: A Survey of Deep Learning-based Methods
- libdrm学习-dumb buffer
- 谷歌收购眼球追踪技术公司Eyefluence,眼动关注度将成为VR的新视角
- vue 移动端头像裁剪_Vue 头像裁剪控件