在写android应用时,我们肯定会写布局文件,在写布局文件时,我们经常会使用控件的padding属性.总以为它很简单,也就没有详细的去了解它,今天在写布局文件时,突然发现它并没有那么简单,所以决定去详细的了解一下它.

使用android studio中创建一个项目,直接运行,我们看到的效果如下:

可以看到"Hello World!"字符串距离屏幕的左边、上边,都有一些距离。打开应用的布局文件,我们可以看到如下代码,

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.ysy.mypaddingpropertydemo.MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"/>
</RelativeLayout>

父控件是个RelativeLayout,子控件是个TextView。父控件设置了paddingBottom、paddingLeft、paddingRight、paddingTop,四个padding属性。为了好区分父控件和子控件,我们给它们设置不同的背景颜色。

运行效果如下:

我们可以看到,padding值的作用是:让控件里的内容距控件边上有一定的距离;这时候,我就想父控件设置的是paddingBottom、paddingTop、paddingLeft、paddingRight都为16dp,而目前的效果是只看到子控件距上边和左边是16dp,而下边和右边则肯定不是16dp了,这是什么原因呢?我们可以看看布局文件中的代码,TextView的宽高默认设置的是wrap_content,包裹内容;我想这里应该是因为子控件的大小不能填充父控件,导致子控件只能距左边和上边为16dp了,这里我们可以设置子控件TextView的宽高为match_parent,看看效果:

现在我们就可以看到,子控件距父控件的上下左右的边上的距离都为16dp了。

现在我们将父控件paddingBottom、paddingTop、paddingLeft、paddingRight这四个属性改为一个padding属性,因为这四个属性设置的值都为16dp,和设置padding属性为16dp是一样的效果。这时,我们增大设置的值为100dp看看效果:

可以看到子控件被我们缩小了,我就在想,如果我一直增大padding的值,会出现什么效果呢,当我将值增大到150dp时,TextView中的内容变成竖直的了,效果如下:

再将padding值增大到160dp时,整个TextView就都看不到了,(我创建的模拟器的大小是320*480的,当我将padding值设置为160dp时,左边右边的距离都为160dp了,就占据了整个屏幕,所以就看不到TextView了)。

总结:

1)padding值设置的是控件里的内容距控件边上的距离。

2)当控件里面的内容不能占据整个控件时,padding是以左上角为准设置。

3)当paddingBottom、paddingTop、paddingLeft、paddingRight设置的值相同时,可以使用padding属性代替。

4)当padding值设置的大小大于等于屏幕的宽度的一般时,或者paddingLeft+paddingRight大于等于屏幕的宽度时,控件中的内容会被挤的显示不出来。(这里默认认为手机屏幕的宽度小于手机屏幕的高度)

android控件属性padding相关推荐

  1. android控件属性

    android控件属性 控件属性: android属性 Android功能强大,界面华丽,但是众多的布局属性就害苦了开发者,下面这篇文章结合了网上不少资料, 第一类:属性值为true或false an ...

  2. 【Android控件属性记录】

    #Android 控件属性记录 方便查找 控件属性: android属性 android功能强大,界面华丽,但是众多的布局属性就害苦了开发者,下面这篇文章结合了网上不少资料, 第一类:属性值为true ...

  3. android 软键盘的从属关系,Android控件属性大全

    控件属性: android属性 Android功能强大,界面华丽,但是众多的布局属性就害苦了开发者,下面这篇文章结合了网上不少资料, 第一类:属性值为true或false android:layout ...

  4. Android --- 控件属性的属性值为 @null

    1.控件属性值为 @null (1)RadioButton里面的属性android:button="@null" 是去掉前面的圆点 (2)android:background=&q ...

  5. android控件属性文档,1.Android控件属性收集

    最近在做ui方面的工作,收集这些属性方便日后快速查找 @autho: zlw email: 739043667@qq.com 欢迎交流 目录: 一.TextView.EditText 属性 二.Car ...

  6. 转 安卓控件属性大全

    "Android控件属性大全": 关键词:android 控件 属性 大全 控件属性: android属性 android功能强大,界面华丽,但是众多的布局属性就害苦了开发者,下面 ...

  7. android system window,Android控件的fitSystemWindows属性

    官方描述: 根据系统窗体里的元素比如状态栏来调整View的布局.如果被设为true,控件的padding将会被调整为顶部留出一个statusBar的空间.类似于伪代码paddingTop=" ...

  8. 【Android】关于Android控件EditText的属性InputType的一些经验

    关于Android控件EditText的属性InputType的一些经验   来源:http://blog.163.com/inflexible_simple/blog/static/16769468 ...

  9. Android中列表框纵向布局,andriod布局常用控件属性..docx

    andriod布局常用控件属性. android:gravity="center_vertical" ?限定它里面的内容要垂直居中显示.?android:layout_gravit ...

最新文章

  1. 数据结构(莫队算法):国家集训队2010 小Z的袜子
  2. 【Linux 】使用 Shell 批量重命名文件名称
  3. java中qq中拉伸的文件,delphi中如何实现QQ中的截图并实现拉伸放大移动的功能
  4. 把握三大计划 抓住ERP项目实施的灵魂
  5. JVM类加载机制_字节码执行引擎_Java内存模型
  6. sql1032n sql6048n db2start启动不了 db2修改hostname
  7. java图片简单爬虫_[Java教程]使用jsoup进行简单的爬虫操作爬取图片
  8. 词根 sent/sens
  9. [No000094]SVN学习笔记4-版本库概念与部分日常操作
  10. [ 数据集 ] MINIST 数据集介绍
  11. 【Altium Designer10详细安装】
  12. DCDC基础(10)-- BUCK电路的CCM和DCM模式
  13. 聊一聊芯片后端的标准单元-standard cell
  14. SUG 180 Inversions(树状数组+离散化)
  15. Tomcat启动项目出现 javax.el.ELException
  16. X11 Wayland 及 Mir 比较
  17. 微信公众号、微信号、微信文章爬虫(搜狗搜索)
  18. 干货|什么是字节码?字节码扩展名是什么?
  19. flinksql实时读取kafka写入mysql
  20. Unity3d C#通过使用大华SDK控制大华摄像头旋转、变焦等云台操作和预置点等控制操作(含源码)

热门文章

  1. js文本框设置必填项_Jquery文本框小例(必填框)
  2. 百度率先在元宇宙举办大会,李彦宏:中国迎来AI黄金十年
  3. Matlab:常用命令大全
  4. 2019年“华为杯”研究生数学建模比赛总结
  5. Linux Overview
  6. “百度+创维”强力破局家电产业:中国AI大屏奇点临近
  7. 不懂envoyfilter也敢说精通istio系列-ratelimit-istio ratelimit完全手册
  8. 关于“产品驱动”和“技术驱动”
  9. 云栖大会倒计时,17个精彩的故事与你一起等待!
  10. laradock 安装使用 kafka