2016-04-19 30 views
0

我有一個片段,其包括具有單一的LinearLayout一個滾動視圖的(I已經包裹了其他LinearLayouts到此)IllegalStateException異常:滾動型只能承載一個直接子

Fragment_Details.xml

<ScrollView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context=".DetailsActivityFragment"> 

    <LinearLayout...> 

</ScrollView> 

在DetailsActivity我添加的片段

DetailsActivity.java

DetailsActivityFragment fragment = new DetailsActivityFragment(); 
     fragment.setArguments(b); 

     getSupportFragmentManager().beginTransaction() 
       .add(R.id.movie_details,fragment) 
       .commit(); 

Activity_Details.xml

<fragment 
android:id="@+id/movie_details" 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:name=".DetailsActivityFragment" 
tools:ignore="MergeRootFrame"/> 

但是當我運行該程序,我收到以下錯誤:

java.lang.RuntimeException: Unable to start activity ComponentInfo{...}: java.lang.IllegalStateException: ScrollView can host only one direct child 

我按照上滾動型的問題線程,但我米無法解決這個問題。請幫助!!

+0

我希望爲錯誤的名稱表明,滾動視圖應該只有一個孩子,u必須擺在Fragment_Details.XML烏爾滾動視圖中只有一個線性佈局。除此之外,我不完全確定,但只是嘗試使用框架佈局,而不是在activity_details片段bcoz片段是用來當你有一個固定的片段來顯示,而在這裏你再次膨脹另一個片段在你的活動。 –

+0

發佈您的整個Fragment_Details佈局內容 – shark1608

+0

您是否使用addView以編程方式將任何其他子項添加到ScrollView? – shark1608

回答

1

使用框架佈局,而不是片段activity_details bcoz片段當u有一個固定的片段顯示使用。 在這裏,您將顯示使用它的ur電影細節片段,但是隨後又會在您的活動中膨脹另一個片段(電影細節片段的另一個實例)併產生問題。

+0

謝謝噸人...問題解決:) – Virat

0

您的線性佈局中有哪些視圖?似乎任何佈局都有一些實現它自己滾動的子元素,比如Listview。

看到這個:ListView inside ScrollView is not scrolling on Android

+0

我的確經歷了添加ListViews的線程,因爲我實際上在LinearLayout(內部ScrollView)內部使用了LinearListView(一個自定義類)。問題出在用替換根元素的根元素)與FrameLayout確實解決了這個問題:) – Virat

相關問題