Android Studio 2.2 版本的 Layout Editor 发生了很大变化,Design 和 Preview 窗口的结构和样式作了不少改进,功能区介绍能够参考官方网站:Build a UI with Layout Editor。本文记录一个有关 refresh 操做的问题。html
还记得在 Android Studio 2.2 版本以前的 refresh 按钮吗?有时候修改资源文件后,并不能在 preview 窗口中即时生效,使用这个刷新按钮便可解决这个问题。但在此次改版中,这个刷新按钮被 Google 去掉了:android
如图,左图是 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
按钮(清理缓存),而后再将图片的引用名称修改回来,预览图中就会显示正确的新图标:ui
固然,这只是一种临时解决方案,但愿下个版本的 Android Studio 可以修复这个问题吧。感谢万能的 stack overflow
帮我解决了这个问题:3d
本文由 亦枫 创做并首发于 亦枫的我的博客 ,同步受权微信公众号:技术鸟(NiaoTech),欢迎关注。code