如何为相对布局设置垂直滚动条

时间:2015-03-25 05:33:36

标签: android android-layout

我正在尝试为我的亲戚设置垂直滚动条

这是代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_marginBottom="20dp"
        android:layout_marginLeft="55dp"
        android:text="Add Leg" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/button2"
        android:layout_alignLeft="@+id/button2"
        android:layout_marginBottom="22dp"
        android:text="Quantity" />

    <EditText
        android:id="@+id/editText1"
        android:inputType="numberDecimal"
        android:layout_width="150dp"
        android:layout_height="40dp"
        android:layout_alignBaseline="@+id/textView1"
        android:layout_alignBottom="@+id/textView1"
        android:layout_marginLeft="19dp"
        android:text="25"
        android:layout_toRightOf="@+id/button2" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/editText1"
        android:layout_below="@+id/textView1"
        android:text="Calculate" />

    <TextView
        android:id="@+id/TextView01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/editText1"
        android:layout_alignLeft="@+id/textView1"
        android:text="Time to expiry" />

    <EditText
        android:id="@+id/EditText01"
        android:inputType="numberDecimal"
        android:layout_width="150dp"
        android:layout_height="40dp"
        android:layout_alignBaseline="@+id/TextView01"
        android:layout_alignBottom="@+id/TextView01"
        android:text="7"
        android:layout_alignLeft="@+id/editText1" />

    <TextView
        android:id="@+id/TextView02"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/EditText01"
        android:layout_alignLeft="@+id/TextView01"
        android:text="Volatality" />

    <EditText
        android:id="@+id/EditText02"
        android:inputType="numberDecimal"
        android:layout_width="150dp"
        android:layout_height="40dp"
        android:layout_alignBaseline="@+id/TextView02"
        android:layout_alignBottom="@+id/TextView02"
        android:layout_alignLeft="@+id/EditText01" 
        android:text="25"/>

    <TextView
        android:id="@+id/TextView03"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/EditText02"
        android:layout_alignLeft="@+id/TextView02"
        android:text="Risk free rate" />

    <EditText
        android:id="@+id/EditText03"
        android:inputType="numberDecimal"
        android:layout_width="150dp"
        android:layout_height="40dp"
        android:layout_alignBaseline="@+id/TextView03"
        android:layout_alignBottom="@+id/TextView03"
        android:layout_alignLeft="@+id/EditText02" 
        android:text="0"/>

    <TextView
        android:id="@+id/TextView04"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/EditText03"
        android:layout_alignLeft="@+id/TextView03"
        android:text="Strike price" />

    <EditText
        android:id="@+id/EditText04"
        android:inputType="numberDecimal"
        android:layout_width="150dp"
        android:layout_height="40dp"
        android:layout_alignBaseline="@+id/TextView04"
        android:layout_alignBottom="@+id/TextView04"
        android:text="9200"
        android:layout_alignLeft="@+id/EditText03" />

    <TextView
        android:id="@+id/TextView05"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/EditText04"
        android:layout_alignLeft="@+id/TextView04"
        android:text="Stock price" />

    <EditText
        android:id="@+id/EditText05"
        android:inputType="numberDecimal"
        android:layout_width="150dp"
        android:layout_height="40dp"
        android:layout_alignBaseline="@+id/TextView05"
        android:layout_alignBottom="@+id/TextView05"
        android:text="9009"
        android:layout_alignLeft="@+id/EditText04" >

        <requestFocus />
    </EditText>

    <Spinner
        android:id="@+id/spinner1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/EditText05"
        android:layout_alignLeft="@+id/EditText05" 
        android:entries="@array/type_arrays"/>

    <TextView
        android:id="@+id/TextView06"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/spinner1"
        android:layout_alignBottom="@+id/spinner1"
        android:layout_alignLeft="@+id/TextView05"
        android:text="Type" />

    <TextView
        android:id="@+id/TextView07"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/spinner1"
        android:layout_alignLeft="@+id/TextView06"
        android:layout_marginBottom="19dp"
        android:text="Option type" />

    <Spinner
        android:id="@+id/Spinner01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/spinner1"
        android:layout_alignLeft="@+id/spinner1" 
        android:entries="@array/option_arrays"/>

    <TextView
        android:id="@+id/TextView08"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/Spinner01"
        android:layout_alignLeft="@+id/TextView07"
        android:layout_marginBottom="19dp"
        android:text="Num of legs" />

    <Spinner
        android:id="@+id/Spinner02"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/Spinner01"
        android:layout_alignLeft="@+id/Spinner01"
         android:entries="@array/legs_arrays" />

    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/button1"
        android:layout_alignRight="@+id/editText1"
        android:text="Clear All" />    

</RelativeLayout>

这是输出图像enter image description here

我尝试使用以下代码设置垂直滚动条:

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

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_marginBottom="20dp"
        android:layout_marginLeft="55dp"
        android:text="Add Leg" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/button2"
        android:layout_alignLeft="@+id/button2"
        android:layout_marginBottom="22dp"
        android:text="Quantity" />

    <EditText
        android:id="@+id/editText1"
        android:inputType="numberDecimal"
        android:layout_width="150dp"
        android:layout_height="40dp"
        android:layout_alignBaseline="@+id/textView1"
        android:layout_alignBottom="@+id/textView1"
        android:layout_marginLeft="19dp"
        android:text="25"
        android:layout_toRightOf="@+id/button2" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/editText1"
        android:layout_below="@+id/textView1"
        android:text="Calculate" />

    <TextView
        android:id="@+id/TextView01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/editText1"
        android:layout_alignLeft="@+id/textView1"
        android:text="Time to expiry" />

    <EditText
        android:id="@+id/EditText01"
        android:inputType="numberDecimal"
        android:layout_width="150dp"
        android:layout_height="40dp"
        android:layout_alignBaseline="@+id/TextView01"
        android:layout_alignBottom="@+id/TextView01"
        android:text="7"
        android:layout_alignLeft="@+id/editText1" />

    <TextView
        android:id="@+id/TextView02"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/EditText01"
        android:layout_alignLeft="@+id/TextView01"
        android:text="Volatality" />

    <EditText
        android:id="@+id/EditText02"
        android:inputType="numberDecimal"
        android:layout_width="150dp"
        android:layout_height="40dp"
        android:layout_alignBaseline="@+id/TextView02"
        android:layout_alignBottom="@+id/TextView02"
        android:layout_alignLeft="@+id/EditText01" 
        android:text="25"/>

    <TextView
        android:id="@+id/TextView03"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/EditText02"
        android:layout_alignLeft="@+id/TextView02"
        android:text="Risk free rate" />

    <EditText
        android:id="@+id/EditText03"
        android:inputType="numberDecimal"
        android:layout_width="150dp"
        android:layout_height="40dp"
        android:layout_alignBaseline="@+id/TextView03"
        android:layout_alignBottom="@+id/TextView03"
        android:layout_alignLeft="@+id/EditText02" 
        android:text="0"/>

    <TextView
        android:id="@+id/TextView04"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/EditText03"
        android:layout_alignLeft="@+id/TextView03"
        android:text="Strike price" />

    <EditText
        android:id="@+id/EditText04"
        android:inputType="numberDecimal"
        android:layout_width="150dp"
        android:layout_height="40dp"
        android:layout_alignBaseline="@+id/TextView04"
        android:layout_alignBottom="@+id/TextView04"
        android:text="9200"
        android:layout_alignLeft="@+id/EditText03" />

    <TextView
        android:id="@+id/TextView05"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/EditText04"
        android:layout_alignLeft="@+id/TextView04"
        android:text="Stock price" />

    <EditText
        android:id="@+id/EditText05"
        android:inputType="numberDecimal"
        android:layout_width="150dp"
        android:layout_height="40dp"
        android:layout_alignBaseline="@+id/TextView05"
        android:layout_alignBottom="@+id/TextView05"
        android:text="9009"
        android:layout_alignLeft="@+id/EditText04" >

        <requestFocus />
    </EditText>

    <Spinner
        android:id="@+id/spinner1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/EditText05"
        android:layout_alignLeft="@+id/EditText05" 
        android:entries="@array/type_arrays"/>

    <TextView
        android:id="@+id/TextView06"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/spinner1"
        android:layout_alignBottom="@+id/spinner1"
        android:layout_alignLeft="@+id/TextView05"
        android:text="Type" />

    <TextView
        android:id="@+id/TextView07"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/spinner1"
        android:layout_alignLeft="@+id/TextView06"
        android:layout_marginBottom="19dp"
        android:text="Option type" />

    <Spinner
        android:id="@+id/Spinner01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/spinner1"
        android:layout_alignLeft="@+id/spinner1" 
        android:entries="@array/option_arrays"/>

    <TextView
        android:id="@+id/TextView08"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/Spinner01"
        android:layout_alignLeft="@+id/TextView07"
        android:layout_marginBottom="19dp"
        android:text="Num of legs" />

    <Spinner
        android:id="@+id/Spinner02"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/Spinner01"
        android:layout_alignLeft="@+id/Spinner01"
         android:entries="@array/legs_arrays" />

    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/button1"
        android:layout_alignRight="@+id/editText1"
        android:text="Clear All" />        
</RelativeLayout>

</ScrollView>

但它给出的输出如图所示,所有视图都在布局的顶部对齐enter image description here

请建议我在我的情况下为相对布局设置垂直滚动条。

提前致谢!!

2 个答案:

答案 0 :(得分:1)

ScrollView只能容纳一个孩子。那个孩子必须是LinearLayout。我认为您可以通过在此LinearLayout之上加RelativeLayout来实现目标。

您还可以在android:scrollbarStyle="outsideInset"中添加此ScrollView

<?xml version="1.0" encoding="utf-8"?>
<ScrollView  xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" android:layout_height="wrap_content"
android:scrollbarStyle="outsideInset">
<LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical"
                >
<RelativeLayout 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_marginBottom="20dp"
        android:layout_marginLeft="55dp"
        android:text="Add Leg" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/button2"
        android:layout_alignLeft="@+id/button2"
        android:layout_marginBottom="22dp"
        android:text="Quantity" />

    <EditText
        android:id="@+id/editText1"
        android:inputType="numberDecimal"
        android:layout_width="150dp"
        android:layout_height="40dp"
        android:layout_alignBaseline="@+id/textView1"
        android:layout_alignBottom="@+id/textView1"
        android:layout_marginLeft="19dp"
        android:text="25"
        android:layout_toRightOf="@+id/button2" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/editText1"
        android:layout_below="@+id/textView1"
        android:text="Calculate" />

    <TextView
        android:id="@+id/TextView01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/editText1"
        android:layout_alignLeft="@+id/textView1"
        android:text="Time to expiry" />

    <EditText
        android:id="@+id/EditText01"
        android:inputType="numberDecimal"
        android:layout_width="150dp"
        android:layout_height="40dp"
        android:layout_alignBaseline="@+id/TextView01"
        android:layout_alignBottom="@+id/TextView01"
        android:text="7"
        android:layout_alignLeft="@+id/editText1" />

    <TextView
        android:id="@+id/TextView02"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/EditText01"
        android:layout_alignLeft="@+id/TextView01"
        android:text="Volatality" />

    <EditText
        android:id="@+id/EditText02"
        android:inputType="numberDecimal"
        android:layout_width="150dp"
        android:layout_height="40dp"
        android:layout_alignBaseline="@+id/TextView02"
        android:layout_alignBottom="@+id/TextView02"
        android:layout_alignLeft="@+id/EditText01" 
        android:text="25"/>

    <TextView
        android:id="@+id/TextView03"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/EditText02"
        android:layout_alignLeft="@+id/TextView02"
        android:text="Risk free rate" />

    <EditText
        android:id="@+id/EditText03"
        android:inputType="numberDecimal"
        android:layout_width="150dp"
        android:layout_height="40dp"
        android:layout_alignBaseline="@+id/TextView03"
        android:layout_alignBottom="@+id/TextView03"
        android:layout_alignLeft="@+id/EditText02" 
        android:text="0"/>

    <TextView
        android:id="@+id/TextView04"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/EditText03"
        android:layout_alignLeft="@+id/TextView03"
        android:text="Strike price" />

    <EditText
        android:id="@+id/EditText04"
        android:inputType="numberDecimal"
        android:layout_width="150dp"
        android:layout_height="40dp"
        android:layout_alignBaseline="@+id/TextView04"
        android:layout_alignBottom="@+id/TextView04"
        android:text="9200"
        android:layout_alignLeft="@+id/EditText03" />

    <TextView
        android:id="@+id/TextView05"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/EditText04"
        android:layout_alignLeft="@+id/TextView04"
        android:text="Stock price" />

    <EditText
        android:id="@+id/EditText05"
        android:inputType="numberDecimal"
        android:layout_width="150dp"
        android:layout_height="40dp"
        android:layout_alignBaseline="@+id/TextView05"
        android:layout_alignBottom="@+id/TextView05"
        android:text="9009"
        android:layout_alignLeft="@+id/EditText04" >

        <requestFocus />
    </EditText>

    <Spinner
        android:id="@+id/spinner1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/EditText05"
        android:layout_alignLeft="@+id/EditText05" 
        android:entries="@array/type_arrays"/>

    <TextView
        android:id="@+id/TextView06"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/spinner1"
        android:layout_alignBottom="@+id/spinner1"
        android:layout_alignLeft="@+id/TextView05"
        android:text="Type" />

    <TextView
        android:id="@+id/TextView07"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/spinner1"
        android:layout_alignLeft="@+id/TextView06"
        android:layout_marginBottom="19dp"
        android:text="Option type" />

    <Spinner
        android:id="@+id/Spinner01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/spinner1"
        android:layout_alignLeft="@+id/spinner1" 
        android:entries="@array/option_arrays"/>

    <TextView
        android:id="@+id/TextView08"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/Spinner01"
        android:layout_alignLeft="@+id/TextView07"
        android:layout_marginBottom="19dp"
        android:text="Num of legs" />

    <Spinner
        android:id="@+id/Spinner02"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/Spinner01"
        android:layout_alignLeft="@+id/Spinner01"
         android:entries="@array/legs_arrays" />

    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/button1"
        android:layout_alignRight="@+id/editText1"
        android:text="Clear All" />        
</RelativeLayout>
</LinearLayout>
</ScrollView>

答案 1 :(得分:0)

将它放在ScrollView标签

android:scrollbars="vertical"

修改滚动高度和宽度fill_parent"match_parent"

从RelativeLayout标记中删除该行

xmlns:android="http://schemas.android.com/apk/res/android"

希望它能起作用..