http://debuglog.iteye.com/blog/1441828
ScrollView cannot contain multiple subkeys, ScrollView can host only one direct child
Blog Category:
javaandroideclipsescrollviewillegalstateexceptionhtml Code
- Android 2.3.3
- Eclipse version:3.7.0
- LogCat
LogCat error message:
Java code
- 03-: 11.126:error/androidruntime (17173): caused by:java.lang.IllegalStateException: ScrollView can host only one direct child
- 03-: 11.126:error/androidruntime (17173): at Android.widget.ScrollView.addView ( Scrollview.java:229)
- 03-: 11.126:error/androidruntime (17173): at Android.view.LayoutInflater.rInflate ( Layoutinflater.java:627)
- 03-: 11.126:error/androidruntime (17173): at Android.view.LayoutInflater.rInflate ( Layoutinflater.java:626)
- 03-: 11.126:error/androidruntime (17173): at Android.view.LayoutInflater.inflate ( Layoutinflater.java:408)
- 03-: 11.126:error/androidruntime (17173): at Android.view.LayoutInflater.inflate ( Layoutinflater.java:)
- 03-: 11.126:error/androidruntime (17173): at Android.view.LayoutInflater.inflate ( Layoutinflater.java:276)
- 03-: 11.126:error/androidruntime (17173): at Com.android.internal.policy.impl.PhoneWindow.setContentView (Phonewindow.java:207)
- 03-: 11.126:error/androidruntime (17173): at Android.app.Activity.setContentView ( Activity.java:1657)
- 03-: 11.126:error/androidruntime (17173): at Com.tmall.nokia.manage.CopyRight.onResume (Copyright.java:)
- 03-: 11.126:error/androidruntime (17173): at Android.app.Instrumentation.callActivityOnResume (Instrumentation.java:1150)
- 03-: 11.126:error/androidruntime (17173): at Android.app.Activity.performResume ( Activity.java:3832)
- 03-: 11.126:error/androidruntime (17173): at Android.app.ActivityThread.performResumeActivity (Activitythread.java:2110)
- 03-: 11.126:error/androidruntime (17173): ... More
Cause analysis of error occurred:
ScrollView only supports one subkey.
View the corresponding layout xml
Java code
- <scrollview xmlns:android="Http://schemas.android.com/apk/res/android"
- Android:layout_width= "fill_parent" android:layout_height="wrap_content "
- android:scrollbars="vertical" >
- <textview android:id="@+id/nokia" android:layout_gravity="center"
- Android:layout_width= "fill_parent" android:layout_height="wrap_content "
- Android:textappearance="? Android:attr/textappearancemedium"
- android:text="@string/text_nokia" ></TextView>
- <textview android:id="@+id/iphone4s" android:layout_gravity="center"
- Android:layout_width= "wrap_content" android:layout_height="wrap_content "
- android:text="@string/text_iphone4s" ></TextView>
- </ScrollView>
There are two TextView subkeys found in ScrollView.
Workaround:
Set LinearLayout as child in ScrollView, and put other view in LinearLayout.
Java code
- <scrollview xmlns:android="Http://schemas.android.com/apk/res/android"
- Android:layout_width= "fill_parent" android:layout_height="wrap_content "
- android:scrollbars="vertical" >
- <linearlayout android:id="@+id/tmall"
- Android:layout_width= "fill_parent" android:layout_height="wrap_content "
- android:orientation="vertical" >
- <textview android:id="@+id/nokia" android:layout_gravity="center"
- Android:layout_width= "fill_parent" android:layout_height="wrap_content "
- Android:textappearance="? Android:attr/textappearancemedium"
- android:text="@string/text_nokia" ></TextView>
- <textview android:id="@+id/iphone4s" android:layout_gravity="center"
- Android:layout_width= "wrap_content" android:layout_height="wrap_content "
- android:text="@string/text_iphone4s" ></TextView>
- </LinearLayout>
- </ScrollView>
Ps. When editing the layout XML, be aware of the "Error Log" window and the "Graphical Layout" tab of the Layout XML editing window.
ScrollView cannot contain multiple subkeys, ScrollView can host only one direct child