天天看點

詭異的 Scroll view may have only one direct child placed within it 錯誤

最近在Android上建立一個簡單的Fragment時出現了詭異的錯誤。我本來的意圖可能也不是很正規,在Activity的Layout xml檔案中,我放置好了一個fragment element,然後打算在Activity的onCreate()函數中利用Fragment Transaction來動态替換這個fragment。然後就報了一個exception,exception的描述是這樣的:

 Scroll view may have only one direct child placed within it

在我想建立的fragment裡,的确是有個頂層scrollview,然而我非常确定的是我的scrollview絕對隻有一個direct child。經過了非常痛苦的google檢索,最後終于發現一點蛛絲馬迹,貌似靜态定義在layout xml檔案中的fragment是不能利用Fragment Transaction來進行replace的!參考

http://cleancodedevelopment-qualityseal.blogspot.jp/2013/10/dynamically-fragment-replacement-android.html

還有這裡

https://github.com/codepath/android_guides/wiki/Creating-and-Using-Fragments

于是我将原來定義在layout xml檔案中的fragment element去除,在Activity的onCreate()函數内,利用Fragment Transaction

的add()函數,動态添加了一個fragment,此時不再報上述錯誤了。fragment也成功添加到Activity中。

不專業,不專業啊。