【发布时间】:2017-05-26 08:20:06
【问题描述】:
假设我的 Android 项目中有以下布局资源文件:
activity_create_group.xml (v21)
activity_create_group.xml (large-v21)
activity_create_group.xml (small-v21)
activity_create_group.xml (xlarge-v21)
activity_create_group.xml (xlarge-land-v21)
这是否意味着低于 API 21 的设备会崩溃?或者通过自动删除某些特定于 API 的功能,例如 android:elevation="4dp" (v21) 和 android:fontFamily="sans-serif-light" (v16),此文件是否仍会支持旧设备?
对此有何判决?
如果我有这些附加功能,并且还想支持旧操作系统,我还应该包括:
activity_create_group.xml (v16)
activity_create_group.xml (large-v16)
activity_create_group.xml (small-v16)
activity_create_group.xml (xlarge-v16)
activity_create_group.xml (xlarge-land-v16)
...和:
activity_create_group.xml
activity_create_group.xml (large)
activity_create_group.xml (small)
activity_create_group.xml (xlarge)
activity_create_group.xml (xlarge-land)
似乎有点矫枉过正。此外,还有很多繁琐的复制粘贴。有没有常见的批处理脚本以这种方式生成布局文件? Android Studio 能处理这个吗?例如,Android 开发工作室的 UI 团队如何处理所有这些资源文件?
降级时,我通常必须更改几个功能,例如更改以下内容:
android:paddingEnd="10dp"
android:paddingStart="25dp"
...到:
android:paddingRight="10dp"
android:paddingLeft="25dp"
android:paddingEnd="10dp"
android:paddingStart="25dp"
如果我真的想支持每一个设备和每一个特定于 API 的功能,你会考虑为每个 Activity 维护 15 个布局文件。我只是不能接受这一点,但鉴于我从未在一家可能对此非常敏感的机构工作过,我不知道在哪里可以找到这种信息。
总之,我的问题是第一个... 如果我只提供上面提供的 v21 布局文件,哪些设备将不受支持?
【问题讨论】:
标签: android xml android-studio layout material-design