我有一个活动,我从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;错误记录
答案 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>