Android4.0以下Margin设置失效解决方法
2013-06-21 19:04
302 查看
Android4.0以下系统FrameLayout布局的子View设置的Margin常常出现失败的情况,而同样的代码在Android4.0及以上的系统中则没有问题。相信此时大多数屌丝程序员都气得很抓狂吧,当初遇到此问题时我也是如此,用百度、谷歌各种搜索都没有很好的解决问题,最后经过自己的研究终于找到了解决问题的方法。
1、在xml布局设置margin失效情况
在要设置Margin的View中加入android:layout_gravity="top|left",则Margin失效问题可以顺利解决;
2、在代码中设置margin失效情况
用如下代码进行设置即可解决问题:
也就是说加入
即可正常解决问题。
解决问题后分析4.0以下之所以Framelayout设置margin失效原因应该是4.0及以上Framelayout的默认的layout_gravity设置好了"top|left"或有类似逻辑,而4.0以下则没有,所以才会失效。
1、在xml布局设置margin失效情况
在要设置Margin的View中加入android:layout_gravity="top|left",则Margin失效问题可以顺利解决;
2、在代码中设置margin失效情况
用如下代码进行设置即可解决问题:
MarginLayoutParams marginParams = new MarginLayoutParams(this.getLayoutParams()); marginParams.height = this.getMeasuredHeight(); marginParams.width = this.getMeasuredWidth(); marginParams.setMargins(l,t,r,b); LayoutParams layoutParams = new LayoutParams(marginParams); layoutParams.gravity = Gravity.TOP|Gravity.LEFT; this.setLayoutParams(layoutParams);
也就是说加入
layoutParams.gravity = Gravity.TOP|Gravity.LEFT;
即可正常解决问题。
解决问题后分析4.0以下之所以Framelayout设置margin失效原因应该是4.0及以上Framelayout的默认的layout_gravity设置好了"top|left"或有类似逻辑,而4.0以下则没有,所以才会失效。
相关文章推荐
- Android4.0以下Margin设置失效解决方法
- Android4.0 Margin设置失效解决方法
- 列表中li标签设置margin在IE6和IE7中第一个行失效的解决方法
- Flex 设置WMODE 后滚轮失效的解决方法
- margin-top失效的解决方法
- UEditor设置内容setContent()失效的解决方法
- div标签中的元素margin-top失效的解决方法
- Android LineaerLayout中layout_margin失效不起作用的解决方法
- 彻底解决session设置timeout不起作用、自动失效的方法
- MongoDB最大连接数设置失效的异常分析过程与解决方法
- 织梦dedecms当channel设置了type和typeid时currentstyle失效时js解决方法
- Win7,64位设置成豆沙绿护眼颜色后,vc6的visual assist 颜色失效,解决方法
- 内层元素设置position:relative后父元素overflow:hidden overflow:scroll失效 解决方法
- Android ScrollView 内部控件 layout_margin失效的解决方法
- PHP setcookie指定domain参数后,在IE下设置cookie失效的解决方法
- Css嵌套DIV,内层DIV设置margin-top失效的解决办法(转)
- 同一个tomcat APP中的 Log4j 的App root System property 不能相同,需要设置不同,不然会出现以下错误。解决方法在错误中标明了。
- UISegmentedControl好多属性设置在iOS7.0之后都失去了失效---也就是“过期了”! iOS7.0之后我们可以用以下方法!
- webview 中textarea设置斜体字体失效的解决方法
- 设置初始工作文件夹一般方法---在matlab2017失效的解决方法