IllegalStateException:ScrollView只能托管一个直接子项

时间:2016-04-19 21:38:14

标签: android android-fragments android-scrollview

我有一个片段,它包含一个scrollview,它有一个LinearLayout(我把其他LinearLayout包装成了这个)

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

我已经关注了ScrollView问题的线程,但我无法解决这个问题。请帮助!!

2 个答案:

答案 0 :(得分:1)

线性布局中的所有视图都是什么?似乎任何布局都有一些子实现它自己的滚动,比如Listview。

请参阅:ListView inside ScrollView is not scrolling on Android

答案 1 :(得分:1)

在activity_details中使用Frame Layout代替片段当你有一个固定片段显示时,使用bcoz片段。 在这里你使用它显示你的电影细节片段,但是再次你在你的活动中膨胀另一个片段(电影细节片段的另一个实例)并产生问题。