Android材质设计兼容性-重复布局



到目前为止,我读到的关于材料设计向后兼容性的所有内容都表明,如果我想使用任何材料设计功能并保持向后兼容性,我必须维护两组单独的布局文件,一组用于21+,另一组用于21之前。不用说,这真的很糟糕。每次我想改变UI中的东西,我都要改变两次。我是正确的,还是有一个很酷的变通办法,我还没有找到?

似乎另一种选择是用Java而不是XML设置所有材料设计属性,并将其包装在针对当前SDK版本的检查中。我认为这很难看,但它可能比重复布局要好。也许用一个聪明的方法把它隐藏起来会让人更能忍受。

除了这两种糟糕的解决方案外,我想不出任何其他解决方案——有人找到更好的吗?

ianhanniballake是对的,您可以将新标记留在文件中。我的愤怒是基于文档中的这一点:

如果版式是根据材料设计的指南不使用中引入的任何新的XML属性Android 5.0 (API级别21),他们将工作在以前的版本Android。否则,您可以提供替代布局。你也可以提供可选择的布局来定制应用程序的早期外观Android版本

创建Android 5.0 (API级别21)的布局文件Res/layout-v21/和早期版本的可选布局文件Android内部的res/layout/。例如res/layout/my_activity.xml是res/layout-v21/my_activity.xml的替代布局。

我认为它清楚地表明要使用新属性你必须复制你的文件。但事实似乎并非如此。谢谢。

最新更新