如何为整个活动添加scrollview

时间:2014-01-25 16:51:20

标签: android scrollview

我有一个活动,我从xml文件设置contentView。但我内部有太多的小部件(按钮,textView等)。所以垂直我不能把它们全部放在屏幕上。在仿真器屏幕中看不到下面的很多东西。我该如何为他们添加ScrollView?我正在使用相对布局&在相对布局中,我已经放置了所有的小部件。如果我必须使用ScrollView而不是&如何使用它?如果有任何其他方式,那么它是什么?

以下是代码:

<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

<ScrollView
 android:id="@+id/scrollView1"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 >
 <TableLayout
 android:id="@+id/table1"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:layout_alignParentRight="true"
 android:background="#F5F5F7" >

 <TableRow
     android:id="@+id/tableRow1"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content" >

     <TextView
         android:id="@+id/lbl1"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="Name: " />

     <EditText
         android:id="@+id/nameEditText"
         android:layout_width="230dp"
         android:layout_height="wrap_content"
         android:layout_marginLeft="5dp"
         android:textSize="15dp" >

         <requestFocus />
     </EditText>
  </TableRow>

  <TableRow
     android:id="@+id/tableRow2"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content" >

     <TextView
         android:id="@+id/lbl2"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="Phone: " />

     <EditText
         android:id="@+id/phoneEditText"
         android:layout_width="150dp"
         android:layout_height="wrap_content"
         android:layout_marginLeft="5dp"
         android:textSize="15dp" >
     </EditText>
  </TableRow>

  <TableRow
     android:id="@+id/tableRow3"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content" >

     <TextView
         android:id="@+id/lbl3"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="Email: " />

     <EditText
         android:id="@+id/emailEditText"
         android:layout_width="150dp"
         android:layout_height="wrap_content"
         android:layout_marginLeft="5dp"
         android:textSize="15dp" >
     </EditText>
  </TableRow>

  <TableRow
     android:id="@+id/tableRow3"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content" >

     <TextView
         android:id="@+id/lbl4"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="Sex: " />

     <RadioGroup
         android:id="@+id/radioSex"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:orientation="horizontal" >

         <RadioButton
             android:id="@+id/radioMale"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_marginLeft="10dp"
             android:checked="true"
             android:text="@string/radio_male"
             android:textSize="13dp" />

         <RadioButton
             android:id="@+id/radioFemale"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_toLeftOf="@+id/radioMale"
             android:text="@string/radio_female"
             android:textSize="13dp" />
     </RadioGroup>
  </TableRow>

  <TableRow
     android:id="@+id/tableRow4"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content" >

     <TextView
         android:id="@+id/lbl4"
         android:layout_width="80dp"
         android:layout_height="wrap_content"
         android:text="Home Division: " />

     <Spinner
         android:id="@+id/divSpinner"
         android:layout_width="150dp"
         android:layout_height="wrap_content"
         android:layout_alignBaseline="@+id/lbl4"
         android:layout_marginLeft="5dp"
         android:textSize="15dp"
         android:entries="@array/DivisionArr" 
         android:prompt="@string/division_prompt" />

     <EditText>
     </EditText>
  </TableRow>

  <TableRow
     android:id="@+id/tableRow5"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content" >

     <TextView
         android:id="@+id/lbl5"
         android:layout_width="80dp"
         android:layout_height="wrap_content"
         android:text="Home District: " 
         />

     <Spinner
         android:id="@+id/distSpinner"
         android:layout_width="150dp"
         android:layout_height="wrap_content"
         android:layout_marginLeft="5dp"
         android:textSize="15dp"

        />

  </TableRow>

  <RelativeLayout
     android:id="@+id/linear1"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content" >

     <TextView
         android:id="@+id/lbl6"
         android:layout_width="80dp"
         android:layout_height="wrap_content"
         android:text="Subjects: " />

     <CheckBox
         android:id="@+id/subChkEng"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_alignBaseline="@+id/subChkBang"
         android:layout_alignBottom="@+id/subChkBang"
         android:layout_alignRight="@+id/subChkFr"
         android:text="English"
         android:textSize="13dp" />

     <CheckBox
         android:id="@+id/subChkArab"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_alignParentRight="true"
         android:layout_alignParentTop="true"
         android:layout_marginRight="32dp"
         android:text="Arabic"
         android:textSize="13dp" />

     <CheckBox
         android:id="@+id/subChkBang"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_alignRight="@+id/subChkArab"
         android:layout_below="@+id/subChkArab"
         android:text="Bangla"
         android:textSize="13dp" />

     <CheckBox
         android:id="@+id/subChkFr"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_alignParentTop="true"
         android:layout_toRightOf="@+id/lbl6"
         android:text="French"
         android:textSize="13dp" />

  </RelativeLayout>


  <TableRow
     android:id="@+id/tableRow6"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content" >

     <TextView
         android:id="@+id/lbl1"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="SMS: " />

     <ToggleButton
         android:id="@+id/smsToggleButton"
         android:layout_width="wrap_content"
         android:layout_height="30dp"
         android:textSize="15dp"
         android:text="ToggleButton" />

     </TableRow>



  <TableRow
     android:id="@+id/tableRow7"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content" >

     <TextView
         android:id="@+id/lbl1"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="Age: " />

     <SeekBar
         android:id="@+id/ageSeekBar"
         android:layout_width="match_parent"
         android:layout_height="wrap_content" 
         android:layout_marginLeft="5dp"/>

  </TableRow>

   <TableRow
     android:id="@+id/tableRow8"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content" >

     <TextView
         android:id="@+id/lbl1"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="Rating: " />
  <RatingBar
         android:id="@+id/ratingBar1"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content" 
         style="?android:attr/ratingBarStyleSmall"/>

  </TableRow>


  </TableLayout>

  <Button
  android:id="@+id/saveButton"
  android:layout_width="wrap_content"
  android:layout_height="20dp"
  android:layout_alignParentBottom="true"
  android:layout_below="@+id/table1"
  android:layout_centerHorizontal="true"
  android:text="Save"
  android:textSize="13dp" />


 </ScrollView>

</RelativeLayout>

错误:呈现期间引发异常:ScrollView只能托管一个直接子项 您必须提供layout_width属性。 Window&gt;中记录了异常详细信息。显示视图&gt;错误记录

3 个答案:

答案 0 :(得分:1)

在ScrolVeiw之后,您必须定义一个线性布局,在那个线性布局中,您可以制作多个布局,我的代码在这里及其工作

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" 
    android:background="@drawable/mainbg">

    <TextView
        android:id="@+id/MainMenu"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Main Menu" 
        android:layout_gravity="center"
        android:textStyle="bold"
        android:textColor="#663300"
        android:layout_marginTop="2dp"/>

    <ImageView
        android:id="@+id/mainlogo"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/easybeelogo"
        android:layout_marginLeft="40dp"
        android:layout_marginRight="40dp"
        android:layout_marginTop="10dp" />

    <ScrollView 
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:layout_marginTop="30dp"
        android:layout_marginBottom="20dp"
        >
        <LinearLayout 
            android:layout_height="match_parent"
            android:layout_width="match_parent"
            android:orientation="vertical">
        <LinearLayout
            android:id="@+id/playerlayout" 
            android:layout_height="wrap_content"
            android:layout_width="match_parent"
            android:background="@drawable/cellonetop"
            android:layout_marginLeft="40dp"
            android:layout_marginRight="40dp"
            android:orientation="horizontal"
            android:weightSum="100"
            android:layout_marginTop="20dp"
            >
            <TextView
                android:id="@+id/tvsetpalyername"
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"
                android:textColor="#ffffff"
                android:text="Choose Player "
                android:padding="5dp"
                android:layout_weight="96"
                android:textSize="12sp"
                android:layout_gravity="center_vertical"

                />

            <ImageView
                android:id="@+id/ivchooseplayer"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                android:background="@drawable/nextclasslogo" 
                />

        </LinearLayout>
        <LinearLayout
            android:id="@+id/gamecatagorylayout" 
            android:layout_height="wrap_content"
            android:layout_width="match_parent"
            android:background="@drawable/cellonetop"
            android:layout_marginLeft="40dp"
            android:layout_marginRight="40dp"
            android:orientation="horizontal"
            android:weightSum="100"
            android:layout_marginTop="20dp"
            >
            <TextView
                android:id="@+id/gamecatagory"
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"
                android:textColor="#ffffff"
                android:text="Game Catagory "
                android:padding="5dp"
                android:layout_weight="40"
                android:textSize="12sp"
                android:layout_gravity="center_vertical"
                />


            <TextView
                android:id="@+id/tvsetgamename"
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"
                android:textColor="#ffffff"
                android:text="Grade of Game "
                android:padding="5dp"
                android:layout_weight="56"
                android:textSize="12sp"
                android:layout_gravity="center_vertical"

                />

            <ImageView
                android:id="@+id/ivchoosegame"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                android:background="@drawable/nextclasslogo" 
                />

        </LinearLayout>





        </LinearLayout> </ScrollView>

</LinearLayout>

答案 1 :(得分:0)

scrollview只能有一个孩子。在Scrollview内创建一个布局(相对或线性),在布局中添加TableLayout和Button。

答案 2 :(得分:0)

在滚动您的活动的滚动视图中添加一个子布局。

例如:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@android:color/white" >

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="center"
        android:padding="20dp" >

        <LinearLayout
            android:id="@+id/splashLayout"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical" >

            <RelativeLayout
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:padding="20.0dip" >

                <LinearLayout
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_centerInParent="true"
                    android:gravity="center_horizontal"
                    android:orientation="horizontal" >

                    <ImageView
                        android:id="@+id/imageView1"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:src="@drawable/logo" />

                    <LinearLayout
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:orientation="vertical" >

                        <ImageView
                            android:layout_width="fill_parent"
                            android:layout_height="wrap_content"
                            android:layout_gravity="center"
                            android:layout_marginLeft="10dp"
                            android:layout_marginRight="5dp"
                            android:src="@drawable/prachi" />

                        <TextView
                            android:layout_width="fill_parent"
                            android:layout_height="wrap_content"
                            android:layout_gravity="center"
                            android:layout_marginLeft="10dp"
                            android:layout_marginTop="10dp"
                            android:text="e-Reader"
                            android:textColor="#002255"
                            android:textSize="25dp" >
                        </TextView>
                    </LinearLayout>
                </LinearLayout>
            </RelativeLayout>

            <TextView
                android:id="@+id/textView_error"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentTop="true"
                android:layout_gravity="center"
                android:layout_marginTop="15.0dip"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:textColor="#FE2E2E"
                android:visibility="invisible" />

            <RelativeLayout
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:padding="20.0dip" >

                <EditText
                    android:id="@+id/log_id"
                    android:layout_width="wrap_content"
                    android:layout_height="50.0dip"
                    android:layout_centerHorizontal="true"
                    android:layout_marginTop="5dp"
                    android:background="@drawable/rounded_edittext_top"
                    android:drawableLeft="@drawable/cred_email"
                    android:drawablePadding="8.0dip"
                    android:hint="@string/text_email"
                    android:inputType="textEmailAddress"
                    android:maxWidth="400.0dip"
                    android:minWidth="400.0dip"
                    android:padding="5.0dip"
                    android:textColor="@color/umano_edit_text"
                    android:textColorHint="@color/umano_edit_hint"
                    android:textSize="16.0sp" />

                <EditText
                    android:id="@+id/log_password"
                    android:layout_width="wrap_content"
                    android:layout_height="50.0dip"
                    android:layout_below="@id/log_id"
                    android:layout_centerHorizontal="true"
                    android:layout_marginTop="0.0dip"
                    android:background="@drawable/rounded_edittext_bottom"
                    android:drawableLeft="@drawable/cred_password"
                    android:drawablePadding="8.0dip"
                    android:hint="@string/text_password"
                    android:inputType="textPassword"
                    android:maxWidth="400.0dip"
                    android:minWidth="400.0dip"
                    android:padding="5.0dip"
                    android:textColor="@color/umano_edit_text"
                    android:textColorHint="@color/umano_edit_hint"
                    android:textSize="16.0sp" />

                <Button
                    android:id="@+id/btn_login"
                    style="@style/LargeButtonOrange"
                    android:layout_below="@id/log_password"
                    android:layout_centerHorizontal="true"
                    android:layout_marginTop="18.0dip"
                    android:maxWidth="400.0dip"
                    android:minWidth="400.0dip"
                    android:text="@string/btn_login_only" />

                <TextView
                    android:id="@+id/link_to_login"
                    android:layout_width="300.0dip"
                    android:layout_height="30.0dip"
                    android:layout_below="@id/btn_login"
                    android:layout_centerHorizontal="true"
                    android:layout_marginTop="22.0dip"
                    android:gravity="center_horizontal"
                    android:text="@string/new_member"
                    android:textColor="@color/umano_edit_text" />
            </RelativeLayout>
        </LinearLayout>

        <Button
            android:id="@+id/button_delete"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentLeft="true"
            android:layout_marginBottom="26dp"
            android:layout_marginLeft="15dp"
            android:text="Button"
            android:visibility="gone" />
    </RelativeLayout>

</ScrollView>