ScrollView不能包含多个子项,ScrollView can host only one direct child

http://debuglog.iteye.com/blog/1441828

ScrollView不能包含多个子项,ScrollView can host only one direct child

博客分类:

JavaAndroidEclipseScrollViewIllegalStateException

Html代码  

  1. Android 2.3.3
  2. Eclipse Version: 3.7.0
  3. LogCat

LogCat  报错信息:

Java代码  

  1. 03-06 11:32:11.126: ERROR/AndroidRuntime(17173): Caused by: java.lang.IllegalStateException: ScrollView can host only one direct child
  2. 03-06 11:32:11.126: ERROR/AndroidRuntime(17173): at android.widget.ScrollView.addView(ScrollView.java:229)
  3. 03-06 11:32:11.126: ERROR/AndroidRuntime(17173): at android.view.LayoutInflater.rInflate(LayoutInflater.java:627)
  4. 03-06 11:32:11.126: ERROR/AndroidRuntime(17173): at android.view.LayoutInflater.rInflate(LayoutInflater.java:626)
  5. 03-06 11:32:11.126: ERROR/AndroidRuntime(17173): at android.view.LayoutInflater.inflate(LayoutInflater.java:408)
  6. 03-06 11:32:11.126: ERROR/AndroidRuntime(17173): at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
  7. 03-06 11:32:11.126: ERROR/AndroidRuntime(17173): at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
  8. 03-06 11:32:11.126: ERROR/AndroidRuntime(17173): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:207)
  9. 03-06 11:32:11.126: ERROR/AndroidRuntime(17173): at android.app.Activity.setContentView(Activity.java:1657)
  10. 03-06 11:32:11.126: ERROR/AndroidRuntime(17173): at com.tmall.nokia.manage.CopyRight.onResume(CopyRight.java:50)
  11. 03-06 11:32:11.126: ERROR/AndroidRuntime(17173): at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1150)
  12. 03-06 11:32:11.126: ERROR/AndroidRuntime(17173): at android.app.Activity.performResume(Activity.java:3832)
  13. 03-06 11:32:11.126: ERROR/AndroidRuntime(17173): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2110)
  14. 03-06 11:32:11.126: ERROR/AndroidRuntime(17173): ... 12 more

发生错误原因分析:

ScrollView仅支持一个子项。

查看对应的layout xml

Java代码  

  1. <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
  2. android:layout_width="fill_parent" android:layout_height="wrap_content"
  3. android:scrollbars="vertical">
  4. <TextView android:id="@+id/nokia" android:layout_gravity="center"
  5. android:layout_width="fill_parent" android:layout_height="wrap_content"
  6. android:textAppearance="?android:attr/textAppearanceMedium"
  7. android:text="@string/text_nokia"></TextView>
  8. <TextView android:id="@+id/iphone4s" android:layout_gravity="center"
  9. android:layout_width="wrap_content" android:layout_height="wrap_content"
  10. android:text="@string/text_iphone4s"></TextView>
  11. </ScrollView>

发现ScrollView中有两个TextView子项。

解决办法:

在ScrollView 中设LinearLayout为子项 ,将其它View放入LinearLayout。

Java代码  

  1. <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
  2. android:layout_width="fill_parent" android:layout_height="wrap_content"
  3. android:scrollbars="vertical">
  4. <LinearLayout android:id="@+id/tmall"
  5. android:layout_width="fill_parent" android:layout_height="wrap_content"
  6. android:orientation="vertical">
  7. <TextView android:id="@+id/nokia" android:layout_gravity="center"
  8. android:layout_width="fill_parent" android:layout_height="wrap_content"
  9. android:textAppearance="?android:attr/textAppearanceMedium"
  10. android:text="@string/text_nokia"></TextView>
  11. <TextView android:id="@+id/iphone4s" android:layout_gravity="center"
  12. android:layout_width="wrap_content" android:layout_height="wrap_content"
  13. android:text="@string/text_iphone4s"></TextView>
  14. </LinearLayout>
  15. </ScrollView>

PS。在编辑layout xml时应注意“Error Log”窗口与layout xml编辑窗口的“Graphical Layout”选项卡。

时间: 2024-10-07 11:30:29

ScrollView不能包含多个子项,ScrollView can host only one direct child的相关文章

&quot;ScrollView can host only one direct child&quot;问题解决

1. 问题描述: (注意下面的黑体字). ScrollView作为顶层view时报错,直接导致apk崩溃,详细错误信息如下: 12-21 09:12:15.150: D/AndroidRuntime(7726): Shutting down VM 12-21 09:12:15.150: W/dalvikvm(7726): threadid=1: thread exiting with uncaught exception (group=0x416402a0) 12-21 09:12:15.160

ScrollView can host only one direct child

android 采用ScrollView布局时出现异 常:ScrollView can host only one direct child. 主要是ScrollView内部只能有一个子元素,即 不能并列两个子元素,所以需要把所有的子 元素放到一个LinearLayout内部或 RelativeLayout等其他布局方式. ScrollView can host only one direct child

&amp;quot;ScrollView can host only one direct child&amp;quot;问题解决了

1. 问题叙述性说明: (请注意以下几点大胆). ScrollView作为顶层view时报错,直接导致apk崩溃.具体错误信息例如以下: 12-21 09:12:15.150: D/AndroidRuntime(7726): Shutting down VM 12-21 09:12:15.150: W/dalvikvm(7726): threadid=1: thread exiting with uncaught exception (group=0x416402a0) 12-21 09:12:

小胖说事10------iOS scrollview作用原理(一个大的scrollview包含一个小的scrollview,如何滑动小的scrollview的时候,大的scrollview滑动小的不动

今天做了一个项目,有这样一个需求,就是一个大的scrollview包含一个小的scrollview,如何滑动小的scrollview的时候,大的scrollview滑动,小的srollview不滑动. 我们知道当多个视图进行叠加的时候,touch事件是作用到最上面的视图上,但是如果父视图是UIScrollView,如果默认,可能touch子视图会造成UIScrollView的滚动. UIScrollView滚动的原因,可以看UIScrollView 原理. 我在这里简单的描述一下,UIScrol

android 有弹性的ScrollView 简单实现,与处理ScrollView和ListView,GridView之间的冲突

处理ScrollView和ListView,GridView之间的冲突, 最好的办法就是继承这两个类,重写他们的onMeasure方法即可: ListView: import android.widget.ListView; /** * ScrollView中嵌入ListView,让ListView全显示出来 * @author John * */ public class MyListView extends ListView{ public MyListView(android.conten

改动ScrollView的滑动速度和解决ScrollView与ViewPager的冲突

话不多说,非常easy,能够从凝视中知道做法,直接上代码: 1.改动ScrollView的滑动速度: public class MyHorizontalScrollView extends HorizontalScrollView { public MyHorizontalScrollView(Context context) { super(context); } public MyHorizontalScrollView(Context context, AttributeSet attrs

android ScrollView 嵌套View 加载数据ScrollView不在顶部

原因: View抢走ScrollView的焦点,View在重新计算的时候无法获取高度,所有导致View显示在顶部. 方法能解决: 使用该布局最顶部的ScrollView中最顶部的那个控件View.layout都行,让后使用这几行代码使其获取焦点就行了. view.setFocusable(true); view.setFocusableInTouchMode(true); view.requestFocus();

修改ScrollView的滑动速度和解决ScrollView与ViewPager的冲突

话不多说,很简单,可以从注释中知道做法,直接上代码: 1.修改ScrollView的滑动速度: public class MyHorizontalScrollView extends HorizontalScrollView { public MyHorizontalScrollView(Context context) { super(context); } public MyHorizontalScrollView(Context context, AttributeSet attrs, i

element-ui中el-form-item包含多个子项需要清空,element-ui中el-form-item包含多个prop需要重置

那就在里面再包一层 <el-form-item v-for="(formItem, itemIndex) in formList" :key="itemIndex" :prop="formItem.prop" :label-width="formItem.type === 'button' ? '0px': formItemWidth ||'auto'" :label="formItem.label"