如何在具有多个子视图的情况下使相对布局可滚动?

hum*_*man 15 android android-layout android-xml android-scrollview

我的xml如下所示

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/form_layout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/black"
    android:orientation="vertical"
    android:overScrollMode="ifContentScrolls"
    android:scrollbarStyle="insideOverlay"
    android:scrollbars="vertical"  >


    <Spinner
        android:id="@+id/formulae"
        android:layout_width="200dp"
        android:layout_height="60dp"
        android:layout_marginLeft="50dp"
        android:layout_marginRight="50dp"
        android:background="@color/LightSkyBlue"
        android:dropDownWidth="wrap_content"
        android:entries="@array/formulas"
        android:gravity="center"
        android:paddingLeft="0dp"
        android:textAlignment="center" /> 


    <EditText
        android:id="@+id/k2_editText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/al"
        android:layout_alignRight="@+id/al_editText"
        android:layout_alignTop="@+id/k2"
        android:layout_marginLeft="120dp"
        android:ems="10"
        android:enabled="true"
        android:inputType="numberDecimal"
        android:onClick="@drawable/textfield_activated_holo_light"
        android:textColor="@color/White"
        android:textSize="15sp"
        android:visibility="visible"
        android:width="100dp" />

    <TextView
        android:id="@+id/k1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/dr"
        android:layout_marginLeft="24dp"
        android:layout_marginTop="28dp"
        android:text="@string/K1"
        android:textColor="@color/white"
        android:textSize="25sp" />

    <EditText
        android:id="@+id/k1_editText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/k2"
        android:layout_alignLeft="@+id/k2_editText"
        android:layout_alignRight="@+id/k2_editText"
        android:layout_alignTop="@+id/k1"
        android:background="@drawable/edit_text_holo_light"
        android:ems="10"
        android:enabled="true"
        android:inputType="numberDecimal"
        android:onClick="@drawable/textfield_activated_holo_light"
        android:textColor="@color/White"
        android:textSize="15sp"
        android:visibility="visible"
        android:width="100dp" />

     <TextView
        android:id="@+id/dr"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/formulae"
        android:layout_below="@+id/formulae"
        android:layout_marginTop="14dp"
        android:layout_toLeftOf="@+id/k1_editText"
        android:ems="10"
        android:gravity="center"
        android:text="@string/dr"
        android:textColor="@color/White"
        android:textSize="25sp" />



    <TextView
        android:id="@+id/k2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/k1"
        android:layout_below="@+id/k1"
        android:layout_marginTop="38dp"
        android:text="@string/K2"
        android:textColor="@color/White"
        android:textSize="25sp" />

    <TextView
        android:id="@+id/al"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/k2"
        android:layout_below="@+id/k2"
        android:layout_marginTop="38dp"
        android:text="@string/AL"
        android:textColor="@color/White"
        android:textSize="25sp" />

    <EditText
        android:id="@+id/al_editText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/formulae"
        android:layout_alignTop="@+id/al"
        android:layout_marginLeft="120dp"
        android:ems="10"
        android:enabled="true"
        android:inputType="numberDecimal"
        android:onClick="@drawable/textfield_activated_holo_light"
        android:textColor="@color/White"
        android:textSize="15sp"
        android:visibility="visible"
        android:width="100dp" />

    <EditText
        android:id="@+id/al_const_editText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/al_const"
        android:layout_alignRight="@+id/al_editText"
        android:layout_marginLeft="120dp"
        android:ems="10"
        android:enabled="true"
        android:inputType="numberDecimal"
        android:onClick="@drawable/textfield_activated_holo_light"
        android:textColor="@color/White"
        android:textSize="15sp"
        android:visibility="visible"
        android:width="100dp" />

    <EditText
        android:id="@+id/dr_editText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/k1_editText"
        android:layout_alignRight="@+id/formulae"
        android:layout_alignTop="@+id/dr"
        android:ems="10"
        android:inputType="numberDecimal|numberSigned"
        android:textColor="@color/White"
        android:textSize="15sp" >

        <requestFocus />
    </EditText>

    <TextView
        android:id="@+id/al_const"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/al"
        android:layout_below="@+id/al_editText"
        android:layout_marginTop="43dp"
        android:text="@string/Rx"
        android:textColor="@color/White"
        android:textSize="20sp" />

    <Button
        android:id="@+id/result"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:background="@color/LightSkyBlue"
        android:text="@string/Result"
        android:textSize="25sp" />

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

图形布局: 在此输入图像描述


我希望DR到A-const的字段可以滚动.我在这里和其他地方搜索了所有可能的解决方案但是徒劳无功.作为android的初学者,我在这里寻求帮助

Pra*_*rma 37

试试这个 :

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

    <ScrollView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >

        <RelativeLayout
            android:id="@+id/form_layout"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:background="@color/black" >

            <Spinner
                android:id="@+id/formulae"
                android:layout_width="200dp"
                android:layout_height="60dp"
                android:layout_marginLeft="50dp"
                android:layout_marginRight="50dp"
                android:background="@color/LightSkyBlue"
                android:dropDownWidth="wrap_content"
                android:entries="@array/formulas"
                android:gravity="center"
                android:paddingLeft="0dp"
                android:textAlignment="center" />

            <EditText
                android:id="@+id/k2_editText"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_above="@+id/al"
                android:layout_alignRight="@+id/al_editText"
                android:layout_alignTop="@+id/k2"
                android:layout_marginLeft="120dp"
                android:ems="10"
                android:enabled="true"
                android:inputType="numberDecimal"
                android:onClick="@drawable/textfield_activated_holo_light"
                android:textColor="@color/White"
                android:textSize="15sp"
                android:visibility="visible"
                android:width="100dp" />

            <TextView
                android:id="@+id/k1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:layout_below="@+id/dr"
                android:layout_marginLeft="24dp"
                android:layout_marginTop="28dp"
                android:text="@string/K1"
                android:textColor="@color/white"
                android:textSize="25sp" />

            <EditText
                android:id="@+id/k1_editText"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_above="@+id/k2"
                android:layout_alignLeft="@+id/k2_editText"
                android:layout_alignRight="@+id/k2_editText"
                android:layout_alignTop="@+id/k1"
                android:background="@drawable/edit_text_holo_light"
                android:ems="10"
                android:enabled="true"
                android:inputType="numberDecimal"
                android:onClick="@drawable/textfield_activated_holo_light"
                android:textColor="@color/White"
                android:textSize="15sp"
                android:visibility="visible"
                android:width="100dp" />

            <TextView
                android:id="@+id/dr"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignLeft="@+id/formulae"
                android:layout_below="@+id/formulae"
                android:layout_marginTop="14dp"
                android:layout_toLeftOf="@+id/k1_editText"
                android:ems="10"
                android:gravity="center"
                android:text="@string/dr"
                android:textColor="@color/White"
                android:textSize="25sp" />

            <TextView
                android:id="@+id/k2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignRight="@+id/k1"
                android:layout_below="@+id/k1"
                android:layout_marginTop="38dp"
                android:text="@string/K2"
                android:textColor="@color/White"
                android:textSize="25sp" />

            <TextView
                android:id="@+id/al"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignRight="@+id/k2"
                android:layout_below="@+id/k2"
                android:layout_marginTop="38dp"
                android:text="@string/AL"
                android:textColor="@color/White"
                android:textSize="25sp" />

            <EditText
                android:id="@+id/al_editText"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignRight="@+id/formulae"
                android:layout_alignTop="@+id/al"
                android:layout_marginLeft="120dp"
                android:ems="10"
                android:enabled="true"
                android:inputType="numberDecimal"
                android:onClick="@drawable/textfield_activated_holo_light"
                android:textColor="@color/White"
                android:textSize="15sp"
                android:visibility="visible"
                android:width="100dp" />

            <EditText
                android:id="@+id/al_const_editText"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignBottom="@+id/al_const"
                android:layout_alignRight="@+id/al_editText"
                android:layout_marginLeft="120dp"
                android:ems="10"
                android:enabled="true"
                android:inputType="numberDecimal"
                android:onClick="@drawable/textfield_activated_holo_light"
                android:textColor="@color/White"
                android:textSize="15sp"
                android:visibility="visible"
                android:width="100dp" />

            <EditText
                android:id="@+id/dr_editText"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignLeft="@+id/k1_editText"
                android:layout_alignRight="@+id/formulae"
                android:layout_alignTop="@+id/dr"
                android:ems="10"
                android:inputType="numberDecimal|numberSigned"
                android:textColor="@color/White"
                android:textSize="15sp" >

                <requestFocus />
            </EditText>

            <TextView
                android:id="@+id/al_const"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignLeft="@+id/al"
                android:layout_below="@+id/al_editText"
                android:layout_marginTop="43dp"
                android:text="@string/Rx"
                android:textColor="@color/White"
                android:textSize="20sp" />

            <Button
                android:id="@+id/result"
                android:layout_width="match_parent"
                android:layout_height="50dp"
                android:layout_alignParentBottom="true"
                android:layout_centerHorizontal="true"
                android:background="@color/LightSkyBlue"
                android:text="@string/Result"
                android:textSize="25sp" />
        </RelativeLayout>
    </ScrollView>

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

谢谢.


小智 6

将相对布局放在LinearLayout中.并将LinearLayout放在ScrollView中

<ScrollView>
 <LinearLayout>
  <RelativeLayout>
    ...
    ...
    ...
  </RelativeLayout>
 </LinearLayout>
</ScrollView>
Run Code Online (Sandbox Code Playgroud)