FrameLayout 的 margin 在 2.x 上不生效
来源:互联网 发布:excel大批量数据查找 编辑:程序博客网 时间:2024/05/21 00:55
在2.2 2.3版本上使用FrameLayout时,如果child要设置margin属性,切记要给layoutParams设置 gravity属性。
lp.gravity = Gravity.LEFT | Gravity.TOP, 这样的margin才能够生效。
解决方案:
给 childView 的 LayoutParams 主动设置一个 gravity 属性
lp.gravity = Gravity.LEFT | Gravity.TOP ;
原因:
- Framelayout的 layoutParams 里的 gravity 属性默认为 -1
下面这块是2.3的源码
可以看到,在 gravity 没有设置的时候,布局的时候是不会处理 margin 属性的
而 4.x + 就没有问题了
下面这块是 4.2 的代码:
可以看到,4.x 后修复了这个问题,在没有设置 gravity 的时候给一个默认值,后面的 layout 过程就能正确处理 margin了~
所以
1. 使用 FrameLayout 的时候记得给 child 加 gravity 属性,确保 2.x 上表现正常
2. ScrollView 继承自 FrameLayout , 同样会有问题!
0 0
- FrameLayout 的 margin 在 2.x 上不生效
- 子div 的margin-top不生效
- hibernate 的@Column注解在的字段上不生效
- css3input在webkit上不生效。
- 在小米手机上,修改APP的launcher应用图标不生效的解决方案
- 在小米手机上,修改APP的launcher应用图标不生效的解决方案
- unity调用系统的webview 显示活动公告 Scroll =“no” 在ios上不生效
- Android 4.4.x Notification 的坑 - 设置deleteIntent不生效
- 关于imageView上的button事件不生效的解决办法
- linux上网络配置不生效的怪异现象处理
- linux上网络配置不生效的怪异现象处理
- 手机上出现点击事件不生效的一种解决方案
- 在同一台电脑机器上安装多个版本jdk,修改环境变量路径不生效的问题
- 动态添加textview设置margin属性不生效
- form设置margin:0px auto不生效
- FrameLayout margin not working
- FrameLayout设置margin无效
- ss在windows下不生效的原因
- Java中的线程
- 杭电1280(前m大的数)
- Leetcode9: Add Binary
- android sdk下载以及一些学习网站
- F - The Minimum Length HUST1010( kmp计算最小循环节)
- FrameLayout 的 margin 在 2.x 上不生效
- c++ copy constructor, operator=
- 算法-骨牌覆盖问题(矩阵快速幂求Fibonacii)
- 结构体内部偏移的妙用 从文件中按照固定格式读取数据
- 求两个等长已排序数组的中位数(算法导论习题9.3-8)
- Velocity中的if
- spark ha with curator
- 黑马程度员——ios基础—— 指针
- 第六周项目六——复数模板类(2)