Android Studio更新至v21后出现两个activity_main文件,该如何处理?
关于Android Studio v21升级后双布局文件的疑问解答
先给你理清楚这两个文件的来头:activity_main是你的通用布局文件,放在res/layout/目录下,所有版本的Android设备都会优先加载它(除非有对应版本的专属布局);而activity_main (v21)是针对API 21及以上版本的专属布局,实际存放在res/layout-v21/目录下,这是Android的资源限定符机制,用来做系统版本的UI适配。
接下来逐个解答你的问题:
编辑activity_main会同步更新activity_main (v21)吗?
不会的,这两个是完全独立的文件。Android Studio不会自动帮你同步修改——毕竟设计这两个文件的初衷就是让你给不同版本做差异化UI。如果两个文件内容完全一致,你修改通用版后,v21版不会跟着变;如果v21版有自己的定制代码,更不会被通用版的修改影响。
activity_main (v21)是否必要?该怎么处理?
这完全取决于你的App需求:
- 如果不需要API 21+的专属UI适配:比如你的App没用到Material Design的新控件、状态栏透明、动态颜色这些只有Android 5.0及以上才支持的特性,那这个v21版本的布局完全没必要留。直接删掉它,所有设备都会统一加载
res/layout/下的通用布局,后续维护也少一份麻烦。 - 如果需要针对高版本做UI定制:那这个文件就很有必要。比如你想在Android 5.0+设备上显示圆角按钮,而低版本保持普通按钮,就可以在v21版的布局里修改,低版本设备依然用通用布局,互不影响。
给你的实操建议:
- 先打开
activity_main (v21)看看它的内容和通用版有没有差异。如果是升级时自动生成的、和通用版完全一样的文件,直接删除就好。 - 如果里面有专属的适配代码,那保留它,并且根据你的UI需求分别维护两个版本的布局。
内容的提问来源于stack exchange,提问作者DrCindie
相关产品推荐
相关产品推荐

