Android Studio 2.2 版本的 Layout Editor 发生了很大变化,Design 和 Preview 窗口的结构和样式做了很多改进。本文记录一个有关 refresh 操作的问题。
还记得在 Android Studio 2.2 版本之前的 refresh 按钮吗?有时候修改资源文件后,并不能在 preview 窗口中即时生效,使用这个刷新按钮即可解决这个问题。但在这次改版中,这个刷新按钮被 Google 去掉了:
如图,左图是 Android Studio 2.2 版本的布局预览图,没有 refresh 按钮;右图是 Android Studio 2.1 版本的布局预览图,拥有 refresh 按钮。
既然被去除掉了,那应该是新版 Android Studio 实现了自动刷新实时显示视图的功能了吧。然而事实不尽如此。举个开发中很常见的例子:
如图,布局中用到了一个图片资源 ic_lock.png 。现在需求改变了,这个图标要替换成另一个图片。正常做法就是拿到 UI 给到的图标,重命名为相同的名字,然后复制到对应的 drawable 或者 mipmap 文件下,覆盖即可。然而你会发现,在 Design 和 Preview 窗口中显示的还是之前的图标!这时,重新打开布局文件,或者使用 Rebuild Project 命令重新编译都不能解决这个问题,甚至有时候重启 Android Studio 也不起任何作用。这也许是新版 Android Studio 的一个 BUG 吧。
经过一番搜索,在 stack overflow 上找到一种解决方案,欣喜若狂。做法很简单,在布局的 Text 窗口中将引用的资源名称故意写错,比如这里的 @mipmap/ic_lock ,将其写成 @mipmap/ic_lock1 ,这样 Desgin 和 Prefrew 窗口就会报错,如图:
注意在右下角的提示信息中有个 Tip 内容,点击 refresh 按钮(清理缓存),然后再将图片的引用名称修改回来,预览图中就会显示正确的新图标:
来自:http://yifeng.studio/2016/11/07/android-android-studio-2-2-preview-refresh-issue/