我有一個頁面和一個FragmentStatePagerAdapter裏面的活動(我需要滑過很多頁面)。衆所周知,該適配器一次創建3個片段實例,即要顯示的片段實例,前一個和下一個片段實例。Android碎片:是空的構造函數真的需要嗎?
我的活動使用只有一個構造函數的片段效果非常好:它收到1個參數。測試時,我開始變得臭名昭著消息:
Unable to instantiate fragment: make sure class name exists, is public,
and has an empty constructor that is public
有趣的是,這個消息只是方向更改後正確顯示出來,但如果方向保持靜止的應用只是工作。所以,
- 爲什麼它的工作方向不會改變?
- 爲什麼方向改變時會失敗?
- 定向變化與剛剛創建的活動相比,片段生命週期中活動的差異是什麼?
非常感謝
如果是這樣,爲什麼框架在重新創建活動和片段時遵循不同的步驟。我的意思是,如果碎片和活動被破壞,爲什麼不按照第一次採取的相同的創作步驟? – 2014-09-23 14:24:08
@Mark:因爲它不能。 *您*在您的代碼*中第一次創建了片段。 Android不是你。 Android無法在您的代碼中識別出執行'FragmentTransactions'的隨機語句,更不用說以某種方式重播這些語句。 – CommonsWare 2014-09-23 14:26:19
我的意思是,框架正在破壞活動及其內部碎片。爲什麼不重新運行相同的代碼,就像創建第一次一樣? – 2014-09-23 20:33:46