android控件属性margin

本文通过实例探讨了Android中控件属性margin的用法和影响,包括margin相对于父控件和相邻控件的关系,以及当margin值过大时控件如何调整自身以满足设置,同时澄清了关于margin设置可能导致的误解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        前几天写了篇android控件属性padding ,我想我应该紧接着写篇android控件属性margin,为什么呢?因为对刚开始学习android的人来说,总是搞不清它们之间有什么区别。以前它也困扰了我很久。但写这篇文章的时候,已经过了好几天了,怪自己这几天松懈了。

       老规矩,使用Android studio创建一个项目,打开布局文件,将根布局修改为一个水平方向的LinearLayout,添加两个Button。运行项目看效果。


给button1按钮设置layout_marginLeft为100dp,运行效果如下:


可以看出button1、button2一起向左平移了100dp,接着给buton2设置layout_marginLeft为100dp,运行效果如下:


我们可以看到button2距离button1的为100dp,但是button2已经变形,那是因为button2设置的宽高都为wrap_content,

button2要满足距button1的距离为100dp,它只有压缩自己,让自己变高,变窄,才能显示自己和距button1的距离为100dp,当再增大marginLeft的值时,会发现button2会被挤的显示不全或者不显示了,因为button2要满足marginLeft值,它只有不停的压缩自己,直到不显示为止。

显示不全的情况如下:

    (1)给button1设置marginLeft为100dp,给button2设置marginLeft为100dp的情况

    (2)给button1设置marginLeft为145dp,设置marginRight为145dp的情况

      PS:我的模拟器的屏幕分辨率为320*480

  


  总结:

        1)margin值,既可以相对于父控件,又可以相对于相邻控件;

        2)给View设置Margin值,如果View没有相邻的控件时,则它的Margin值是相对于父控件;

        3)给View设置Margin值,如果View有相邻的控件时,它的margin值是相对于相邻控件;

        4)为了满足给View设置的Margin,View会压缩自己,达到用户设置的效果,直到将自己压缩至看不见;

        5)当marginLeft、marginRight、marginTop、marginBottom设置的值相同时,可以使用margin一个属性代替;

以前错误的认识:

       当没有做测试前,总认为,当Margin值设置的值大于设备屏幕时,控件会出现在屏幕外面,但它完整存在,并不会压缩自己。然而,自己也没有想左右(上下)设置的margin值大于等于屏幕的宽(高)的一半时的情况。

     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值