Android 如何在 Android Studio 2.2 版本實現 refresh 操作?

亦楓發表於2016-12-22

Android Studio 2.2 版本的 Layout Editor 發生了很大變化,Design 和 Preview 視窗的結構和樣式做了很多改進,功能區介紹可以參考官方網站:Build a UI with Layout Editor。本文記錄一個有關 refresh 操作的問題。

還記得在 Android Studio 2.2 版本之前的 refresh 按鈕嗎?有時候修改資原始檔後,並不能在 preview 視窗中即時生效,使用這個重新整理按鈕即可解決這個問題。但在這次改版中,這個重新整理按鈕被 Google 去掉了:

Android 如何在 Android Studio 2.2 版本實現 refresh 操作?

如圖,左圖是 Android Studio 2.2 版本的佈局預覽圖,沒有 refresh 按鈕;右圖是 Android Studio 2.1 版本的佈局預覽圖,擁有 refresh 按鈕。

既然被去除掉了,那應該是新版 Android Studio 實現了自動重新整理實時顯示檢視的功能了吧。然而事實不盡如此。舉個開發中很常見的例子:

Android 如何在 Android Studio 2.2 版本實現 refresh 操作?

如圖,佈局中用到了一個圖片資源 ic_lock.png。現在需求改變了,這個圖示要替換成另一個圖片。正常做法就是拿到 UI 給到的圖示,重新命名為相同的名字,然後複製到對應的 drawable 或者 mipmap 檔案下,覆蓋即可。然而你會發現,在 Design 和 Preview 視窗中顯示的還是之前的圖示!這時,重新開啟佈局檔案,或者使用 Rebuild Project 命令重新編譯都不能解決這個問題,甚至有時候重啟 Android Studio 也不起任何作用。這也許是新版 Android Studio 的一個 BUG 吧。

經過一番搜尋,在 stack overflow 上找到一種解決方案,欣喜若狂。做法很簡單,在佈局的 Text 視窗中將引用的資源名稱故意寫錯,比如這裡的 @mipmap/ic_lock,將其寫成 @mipmap/ic_lock1,這樣 DesginPrefrew 視窗就會報錯,如圖:

Android 如何在 Android Studio 2.2 版本實現 refresh 操作?

注意在右下角的提示資訊中有個 Tip 內容,點選 refresh 按鈕(清理快取),然後再將圖片的引用名稱修改回來,預覽圖中就會顯示正確的新圖示:

Android 如何在 Android Studio 2.2 版本實現 refresh 操作?
preview_samples_03.png

當然,這只是一種臨時解決方案,希望下個版本的 Android Studio 能夠修復這個問題吧。感謝萬能的 stack overflow 幫我解決了這個問題:

Android 如何在 Android Studio 2.2 版本實現 refresh 操作?

關注作者


本文由 亦楓 創作並首發於 亦楓的個人部落格 ,同步授權微信公眾號:技術鳥(NiaoTech),歡迎關注。

Android 如何在 Android Studio 2.2 版本實現 refresh 操作?

相關文章