【问题标题】:Program different layouts for different versions in android在android中为不同版本编程不同的布局
【发布时间】:2012-01-18 20:20:20
【问题描述】:

我必须以最佳的兼容性对不同的屏幕尺寸(平板电脑和智能手机)以及版本 2.3、3.2 和 4.0 对我的 Android 应用进行编程。 我知道将布局的文件夹命名为 res/layout-sw600dp/ 的可能性。使布局与不同的屏幕尺寸完全匹配。

因此,由于我将完全为平板电脑/智能手机使用不同的布局,我将从“加载屏幕”开始,它测试使用的是哪个 Android 版本以及是否使用了平板电脑 -或智能手机设备,例如在平板电脑的布局中,某些屏幕上会有智能手机上没有的按钮。

所以我将不得不将所有这些都放在包中,如下所示:

  • 常见
  • 2.3
    • 平板电脑
    • 智能手机
  • 3.2
    • 平板电脑
    • 智能手机
  • 4.0
    • 平板电脑
    • 智能手机

我会选择这种分离,因为在我看来,这是为即将到来的 *更新*做好准备的最佳方式,假设应该添加Android 4.0 中工具栏中的按钮。

在您看来,这种分离是好事还是完全超载?

4.0 中还有其他我应该注意的新功能吗?

【问题讨论】:

    标签: android layout version screen-size android-4.0-ice-cream-sandwich


    【解决方案1】:

    您还可以命名资源文件夹以指示版本号(如/res/layout-v11)或(/res/values-v13

    关于您关于分离的问题 - 这实际上取决于您的特定要求。解决此问题的常用方法是回退机制:您提供一些特定布局(例如,xlarge Landscape v11 布局)和一些通用布局。

    当然,这是一个“理想主义”的解决方案;它并不总是这样工作。换句话说,仅仅通过提供替代资源,实际上很难实现与这么多版本的Android兼容的应用程序。即使您使用兼容性库(这有助于减少特定于版本的代码);您仍然需要在运行时根据版本调整代码。

    【讨论】:

      【解决方案2】:

      您可以通过 Build.VERSION 找到 Android 版本。

      文档建议您对照 Build.VERSION_CODES 中的值检查 Build.VERSION.SDK_INT。

      并且基于该版本,您可以在 if else 条件下设置布局

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-08-24
        • 2011-10-16
        • 2018-09-08
        • 1970-01-01
        • 2016-03-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多