FILL_PARENT和MATCH_PARENT是什么?

9

目前我的应用程序中使用了MATCH_PARENT。

我决定将应用程序提供给Android 2.1用户,但MATCH_PARENT直到Android 2.2才被引入。

如果我希望我的应用程序在Android版本为2.2及以上时使用MATCH_PARENT,而在2.1(或更低版本,如果我决定稍后向他们开放)时使用FILL_PARENT,我该怎么做?

3个回答

11

FILL_PARENTMATCH_PARENT是同一件事情,如果用户所使用的版本为2.2或更高版本,则FILL_PARENT将自动替换为MATCH_PARENT。因此最好使用FILL_PARENT以支持向后兼容性。
在Android开发网站上有关于此的博客文章,如果您想了解更多详情,请查找该文章。


1
哇,我不知道它会自动被替换。我以为如果它被弃用了,你应该尽量避免使用它。谢谢! - bassicplays
1
@dokgu 你为什么认为 deprecated 意味着必须 _不惜一切代价避免它_?如果是这样的话,就不会有迁移路径了。 - class stacker

2
即使您支持Android 2.1或更低版本,也不应再使用fill_parent。 您可能知道Java编译器会在类文件中静态地将常量(如FILL_PARENTMATCH_PARENT)转换为它们的相应值。 这也发生在布局XML文件中。
如果您不相信,请在模拟器上尝试一下(您应该在AndroidManifest.xml中声明android:minSdkVersion="4")。

2

它们实际上是做同样的事情,只是在2.2+中更改了语法。我建议始终使用FILL_PARENT,这样如果你想要支持2.1或更低版本,它就永远有效。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接