为什么这段代码不起作用(Android - Scrollview)

时间:2012-06-08 13:27:01

标签: android

当我运行此应用程序时,它会崩溃。我甚至尝试使用LinearLayout,但它也不起作用。我做错了什么人?

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/scrollView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >

<CheckBox
    android:id="@+id/CheckBox13"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="CheckBox" />

<CheckBox
    android:id="@+id/CheckBox12"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="CheckBox" />

<CheckBox
    android:id="@+id/CheckBox11"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="CheckBox" />

<CheckBox
    android:id="@+id/CheckBox10"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="CheckBox" />


</ScrollView>

2 个答案:

答案 0 :(得分:0)

您在ScrollView视图中可能只有单个直接子项

scrollview只能托管一个直接孩子。

从:

http://developer.android.com/reference/android/widget/ScrollView.html

A ScrollView is a FrameLayout, meaning you should place one child in it containing the entire contents to scroll; this child may itself be a layout manager with a complex hierarchy of objects. A child that is often used is a LinearLayout in a vertical orientation, presenting a vertical array of top-level items that the user can scroll through

所以你的代码应该是这样的

  <?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/scrollView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >

<LinerLayout 
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >

<CheckBox
    android:id="@+id/CheckBox13"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="CheckBox" />

<CheckBox
    android:id="@+id/CheckBox12"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="CheckBox" />

<CheckBox
    android:id="@+id/CheckBox11"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="CheckBox" />

<CheckBox
    android:id="@+id/CheckBox10"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="CheckBox" />

 </LinerLayout>

</ScrollView>

这是log cat ..........

enter image description here

答案 1 :(得分:0)

ScrollView仅将一个视图作为子视图。您不能直接在其中放入3个复选框。

相反:

<ScrollView ... >
     <LinearLayout ...>
          <CheckBox
              android:id="@+id/CheckBox13"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:text="CheckBox" />

          <CheckBox
              android:id="@+id/CheckBox12"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:text="CheckBox" />

          <CheckBox
              android:id="@+id/CheckBox11"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:text="CheckBox" />

          <CheckBox
              android:id="@+id/CheckBox10"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:text="CheckBox" />
     </LinearLayout>
 </ScrollView>