Android Studio 2.2 版本的 Layout Editor 發(fā)生了很大變化氧吐,Design 和 Preview 窗口的結(jié)構(gòu)和樣式做了很多改進(jìn)褪秀,功能區(qū)介紹可以參考官方網(wǎng)站:Build a UI with Layout Editor空猜。本文記錄一個有關(guān) refresh 操作的問題绽慈。
還記得在 Android Studio 2.2 版本之前的 refresh 按鈕嗎?有時候修改資源文件后辈毯,并不能在 preview 窗口中即時生效坝疼,使用這個刷新按鈕即可解決這個問題。但在這次改版中谆沃,這個刷新按鈕被 Google 去掉了:
如圖钝凶,左圖是 Android Studio 2.2 版本的布局預(yù)覽圖,沒有 refresh 按鈕唁影;右圖是 Android Studio 2.1 版本的布局預(yù)覽圖耕陷,擁有 refresh 按鈕。
既然被去除掉了据沈,那應(yīng)該是新版 Android Studio 實現(xiàn)了自動刷新實時顯示視圖的功能了吧哟沫。然而事實不盡如此。舉個開發(fā)中很常見的例子:
如圖锌介,布局中用到了一個圖片資源 ic_lock.png
∈染鳎現(xiàn)在需求改變了,這個圖標(biāo)要替換成另一個圖片孔祸。正常做法就是拿到 UI 給到的圖標(biāo)隆敢,重命名為相同的名字,然后復(fù)制到對應(yīng)的 drawable
或者 mipmap
文件下融击,覆蓋即可筑公。然而你會發(fā)現(xiàn)雳窟,在 Design 和 Preview 窗口中顯示的還是之前的圖標(biāo)尊浪!這時,重新打開布局文件封救,或者使用 Rebuild Project 命令重新編譯都不能解決這個問題拇涤,甚至有時候重啟 Android Studio 也不起任何作用。這也許是新版 Android Studio 的一個 BUG 吧誉结。
經(jīng)過一番搜索鹅士,在 stack overflow
上找到一種解決方案,欣喜若狂惩坑。做法很簡單掉盅,在布局的 Text 窗口中將引用的資源名稱故意寫錯也拜,比如這里的 @mipmap/ic_lock
,將其寫成 @mipmap/ic_lock1
趾痘,這樣 Desgin
和 Prefrew
窗口就會報錯慢哈,如圖:
注意在右下角的提示信息中有個 Tip 內(nèi)容,點擊 refresh
按鈕(清理緩存)永票,然后再將圖片的引用名稱修改回來卵贱,預(yù)覽圖中就會顯示正確的新圖標(biāo):
當(dāng)然,這只是一種臨時解決方案侣集,希望下個版本的 Android Studio 能夠修復(fù)這個問題吧键俱。感謝萬能的 stack overflow
幫我解決了這個問題: