布局無法預覽往往嚴重影響開發(fā)效率。而自定義控件往往會導致布局文件無法預覽,如果問題代碼直接寫到自定義控件中Android Studio往往可以識別出來,但是如果發(fā)現(xiàn)是調(diào)用鏈比較深甚至已經(jīng)調(diào)用到其他文件的情況,目前Android Studio的布局預覽不會報任何錯誤,直接無法預覽布局,這時候別慌,需要開發(fā)者手動排查,具體步驟如下:
- 打開無法預覽的布局文件
- 嘗試刪除掉控件A,如果刪除控件A后成功預覽,則去控件A定位問題
- 將控件A的構造方法及其調(diào)用的方法中的可疑代碼(預留過程中由于沒有初始化會造成空指針或者類型轉換異常的如context轉換成Activity)刪除,rebuild項目,再次檢查是否能夠預覽
- 將可疑代碼用isEditMode()隔離
平時封裝自定義控件的時候除必要情況下,建議不要寫過于復雜的代碼,如果自定義控件的構造方法及其調(diào)用的方法中存在下面這些代碼最好用isEditMode()隔離開:
- 依賴Application初始化后才能調(diào)用的代碼,否則會因為空指針問題導致布局無法預覽
- View如果在Activity中使用,通過getContext()后轉換成Activity,可能會引起類型轉換異?;蛘呖罩羔槍е虏季譄o法預覽
- View中存在Native方法調(diào)用、反射調(diào)用的,可能也會導致布局無法預覽
- 等等……