【问题标题】:Android fill_parent to match_parentAndroid fill_parent 到 match_parent
【发布时间】:2011-09-30 09:07:23
【问题描述】:

引入 match_parent 和弃用 fill_parent 的原因是什么,因为两者的含义相同。这种变化不会成为向后兼容性的障碍吗?

【问题讨论】:

  • 我也一直想知道这一点。其实我觉得fill_parentmatch_parent更能代表意义。

标签: android fill-parent


【解决方案1】:

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

但是在编译代码时如果切换到旧版本(版本 7 或更低版本)则会出现编译错误(因为 match_parent 未在版本 7 或更低版本中定义)。

【讨论】:

    【解决方案2】:

    Android 文档说:

    FILL_PARENT(在 API 级别 8 及更高版本中重命名为 MATCH_PARENT),这意味着视图希望与其父级一样大(减去填充)

    fill_parent:视图应该与其父级一样大(减去填充)。 从 API 级别 8 开始不推荐使用此常量并被替换 通过 match_parent。

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

    这让您更好地了解何时应该将所有的 fill_parent 更改为 match_parent。 截至目前,似乎有 50% 的人使用 API 级别 8 或更高级别。所以由你来改变它。

    【讨论】:

    • 感谢您的回复,但我的问题是为什么要进行此更改,而不是如何相处。
    • 对不起,我能想到的唯一原因是 FILL_PARENT 可能意味着以相同的大小和位置(x,y)将子视图填充到其父视图。但是 FILL_PARENT 的实际含义是大小(宽度或高度)与父级相同,而不是位置(x,y),因此他们决定更改为 MATCH_PARENT 以澄清这一点。但我不是改名的人,只是对它进行合理的猜测。 :)
    猜你喜欢
    • 2012-04-14
    • 1970-01-01
    • 2012-06-29
    • 2011-08-11
    • 2013-04-02
    • 2013-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多