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