2011-09-30 41 views
8

引入match_parent和弃用fill_parent的原因是什么,因为两者意味着同样的事情。这种改变不会成为向后兼容的障碍吗?Android fill_parent to match_parent

+0

我也一直在想这个。我实际上认为'fill_parent'表示比'match_parent'更好的含义。 – inazaruk

回答

10

使用match_parent而不是fill_parent不会使生成的APK在旧版本中无法运行,因为在生成的APK中,match_parent和fill_parent的出现将被替换为它们相应的常量值,在这种情况下它们都是相同的),所以同样的APK也可以在老版本的Android平台上运行。

但是,如果您切换到旧版本(版本7或以下版本)编译代码,那么你会得到一个编译错误(因为match_parent没有定义在版本7或以下)。

4

Android的医生说:

FILL_PARENT,这意味着视图想要成为大如其父(减去填充)

FILL_PARENT(在API级别8或更高改名MATCH_PARENT):该视图应该和它的父项一样大(减去填充)。 该常量从API级别8开始被弃用,并且被match_parent替换为 。

所以它们是一样的,它们的值都是-1。但是如果你担心向后兼容性,你可以去这里:platfrom version

这给你一个更好的想法,当你应该改变你所有的fill_parent到match_parent。 截至目前,似乎有50%的人使用API​​等级8或以上。所以这是由你来改变它。

+0

感谢您的回复,但我的问题是为什么这个改变完成了,而不是如何与它相处。 – 1O1

+0

我很抱歉,我能想到的唯一原因是FILL_PARENT可能意味着在相同大小和位置(x,y)处将子视图填充到其父视图。但FILL_PARENT的实际含义是大小(宽度或高度)与父级相同,而不是位置(x,y),因此他们决定更改为MATCH_PARENT以便对此进行说明。但我不是那个改变了这个名字的人,只是对它进行合理的猜测。 :) –