誰/什麼調用onFinishInflate()?無論如何膨脹我的佈局文件(在代碼中),這個方法似乎永遠不會被觸發。任何人都可以給我一個例子,或者告訴我onFinishInflate()實際上被調用了嗎?onFinishInflate()永遠不會被調用
17
A
回答
30
View.onFinishInflate()
在視圖(及其子元素)從XML膨脹後調用。具體而言,在撥打LayoutInflater.inflate(...)
期間將調用onFinishInflate()
。通貨膨脹是從根開始遞歸執行的。包含孩子的視圖可能需要知道孩子何時完成充氣。此回調的主要用途之一是ViewGroups
在孩子準備好後執行特殊操作。
假設您有一個名爲CustomView
的View
的子類,並且它不會在內部自動膨脹任何佈局。如果你有在你的佈局CustomView
的地方,即:
...
<com.company.CustomView
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
...
您將看到一個回調onFinishInflate()
一旦被誇大。如果這是您的活動的主要佈局,那麼可以在調用Activity.setContentView(int)
之後考慮這種情況。在內部,這將叫LayoutInflater.inflate(...)
。
另外,如果你創建的CustomView
一個實例:
...
new CustomView(context);
...
...你不會有機會onFinishInflate()
通話。以這種方式實例化它自然意味着它沒有孩子,因此它不需要等待它們以遞歸方式實例化,就像XML通貨膨脹一樣。
相關問題
- 1. OnLocationChanged回調永遠不會被調用
- 2. System.Threading.Timer回調永遠不會被調用
- 3. RxScala ConnectableObservable.doOnSubscribe永遠不會被調用?
- 4. DragEvent.ACTION_DROP永遠不會被調用
- 5. 星火:onApplicationStart永遠不會被調用
- 6. asp.net MvcHandler.ProcessRequest永遠不會被調用
- 7. kubernetes的ScheduledJob永遠不會被調用
- 8. Restkit onDidFailWithError永遠不會被調用
- 9. ON_CANCEL永遠不會被調用
- 10. Android onSystemUiVisibilityChange永遠不會被調用
- 11. OnModelCreating永遠不會被調用
- 12. CAAnimationDelegate代表永遠不會被調用
- 13. 我的onActivityResult()永遠不會被調用
- 14. Qt的nativeEvent()永遠不會被調用
- 15. onreadystatechange函數永遠不會被調用
- 16. OnActivityResult永遠不會被調用
- 17. Icefaces 3.0.1 FileEntry:FileEntryListener永遠不會被調用
- 18. didRegisterForRemoteNotificationsWithDeviceToken永遠不會被調用(Unity3D)
- 19. 片段onCreateView永遠不會被調用
- 20. onreadystatechange永遠不會被調用
- 21. 訂閱Observable.forkJoin永遠不會被調用
- 22. WebClient.DownloadProgressChanged永遠不會被調用
- 23. heightForRowAtIndexPath永遠不會被調用iOS9
- 24. WakefulBroadcastReceiver永遠不會被調用
- 25. onCreateOptionsMenu永遠不會被調用
- 26. Android IntentService永遠不會被調用
- 27. kendo ui requestEnd永遠不會被調用
- 28. Sinon Spy永遠不會被調用
- 29. Javascript永遠不會被調用
- 30. AsyncTask - onPostExecute永遠不會被調用
所以文檔是錯誤的。如果手動膨脹佈局,則不會調用回調。但是你仍然可以手動調用它來保持同質。 – Snicolas 2014-05-10 00:58:24
你不能自己調用這個方法。這是一種受保護的方法...您需要一個受保護的類。注意到在包'android.view'中使用它不起作用。 – 2016-01-20 18:26:59
這不是真的,你可以在構造函數中調用'super.onFinishInflate'或重寫的'onFinishInflate'。 – GLee 2016-05-16 23:39:03