• 欢迎访问Eblogs,最热门语言开发,最热门数码资讯,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入Eblogs
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏Eblogs吧
  • 欢迎大家多多留言交流哦~

Android调用addView方法子View的match_parent或者fill_parent失效的问题解析

Android 曹传欢 4678次浏览 0个评论

相信大家在日常开发中会经常使用addView这个方法,但是没准你也会遇到今天要跟大家分享的这个问题,就是如果使用addView方法,将一个宽度设为match_parent或者fill_parent的子View作为参数传递的时候,发现View确实添加进去了,但是并不是我们想要的结果,发现view并没有完全占满,这是为什么呢?

查看源码发现addView提供了如下几种实现方式:

而我们基本采用的是第一种实现方式,而它会自动调用

深度观察下这个方法,不难发现

当子View的参数为空(由于没有绑定到主View会经常为null)时,会自动设置一个generateDefaultLayoutParams的默认设置

这里你就会发现问题的所在了,默认设置的宽高都是自适应的,那么怎么解决呢?

其实只需要我们调用addView的另外一种实现方式

这里只需要注意一个问题就是要根据你子View的具体布局来调用不的LayoutParams(比如LinearLayout.LayoutParams还是RelativeLayout.LayoutParams)不然可能会崩溃哦~~


Eblogs , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明Android调用addView方法子View的match_parent或者fill_parent失效的问题解析
喜欢 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址