【问题标题】:FILL_PARENT and MATCH_PARENT [duplicate]FILL_PARENT 和 MATCH_PARENT [重复]
【发布时间】:2012-04-14 12:24:42
【问题描述】:

现在我在整个应用程序中都使用 MATCH_PARENT。 我决定让 Android 2.1 用户可以使用该应用,但 MATCH_PARENT 直到 Android 2.2 才引入

如果我希望我的应用在 Android 版本为 2.2 及更高版本时使用 MATCH_PARENT 但如果它是 2.1 则使用 FILL_PARENT(或者如果我决定稍后向他们打开它,则使用更低版本),我应该如何执行此操作?

【问题讨论】:

    标签: android android-layout backwards-compatibility


    【解决方案1】:

    FILL_PARENTMATCH_PARENT 是同一个东西,如果用户拥有的版本是2.2 或更高版本,FILL_PARENT 将自动替换为MATCH_PARENT。所以最好使用FILL_PARENT,支持向后兼容。
    Android 开发网站上有一个关于此的博客,如果您想了解更多详细信息,希望您能找到它。

    【讨论】:

    • 哇,我不知道它会自动替换。我想如果它被贬低,你应该不惜一切代价避免它。谢谢!
    • @dokgu 是什么让您认为已弃用意味着必须不惜一切代价避免它?如果是这样,就不会有迁移路径。
    【解决方案2】:

    他们做了完全相同的事情,只是改变了 2.2+ 的语法。我想说总是使用 FILL_PARENT,这样如果您计划支持 2.1 或更低版本,它就可以一直工作。

    【讨论】:

      【解决方案3】:

      即使您支持 Android 2.1 或更低版本,也不应再使用 fill_parent。您可能知道 Java 编译器会在类文件中将FILL_PARENTMATCH_PARENT 等常量静态转换为它们各自的值。这也发生在布局 XML 文件上。

      如果您不相信这一点,请在您的模拟器上尝试一下(您应该在 AndroidManifest.xml 中声明 android:minSdkVersion="4")。

      【讨论】:

        猜你喜欢
        • 2012-06-29
        • 2013-04-02
        • 1970-01-01
        • 2013-06-03
        • 2011-08-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-04
        相关资源
        最近更新 更多