Android fill_parent 到 match_parent
引入 match_parent 和弃用 fill_parent 背后的原因是什么,因为两者含义相同。此更改不会妨碍向后兼容性吗?
What was the reason behind introducing match_parent and deprecating fill_parent since both mean the same thing. won't this change be a hindrance to backward compatibility?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用 match_parent 而不是 fill_parent 不会使生成的 APK 在旧版本中无法运行,因为在生成的 APK 中,match_parent 和 fill_parent 的出现将被替换为其相应的常量值,在本例中是相同的(均为 -1),所以相同APK 也可以在旧版本的 Android 平台上运行。
但是,在编译代码时,如果切换到旧版本(版本 7 或更低版本),则会出现编译错误(因为版本 7 或更低版本中未定义 match_parent)。
Using match_parent instead of fill_parent will NOT make the generated APK unrunnable in older versions because in the generated APK the occurrence of match_parent's and fill_parent's will be replaced with their corresponding Constant Value, which is same in this case (both are -1), so same APK can run on older versions of Android platform as well.
But while compiling the code if you switch to older version (version 7 or below) then you will get a compilation error (since match_parent is not defined in version 7 or below).
Android 文档说:
所以它们是相同的,因为它们的值都是-1。但如果您担心向后兼容性,可以转到此处:平台版本
这可以让您更好地了解何时应该将所有 fill_parent 更改为 match_parent。
截至目前,似乎有 50% 的人使用 API 级别 8 或更高版本。所以由你来改变它。
Android Doc says:
So They are the same as their values are both -1. But if you worry about the backward compatibility, you can go here: platfrom version
this give you a better idea on when you should change all your fill_parent to match_parent.
as of now, it seems 50% ppl are using API Level 8 or above. So it's up to you to change it.