android - 当有很多 subview 时,如何使相对布局可滚动?

标签 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>

图形布局:
enter image description here

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

最佳答案

尝试这个 :

<?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>

谢谢。

关于android - 当有很多 subview 时,如何使相对布局可滚动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14210508/

相关文章:

java - 处理程序随机停止更新 setText

java - 使用屏幕导航按钮移动位图对象

java - 如何在 RxJava 中将两个对象合并到其中一个对象中?

java - NullPointerException: 名称 == null

android - 使用 layout/main.xml 文件将选项卡添加到 Android 应用程序

java - postInvalidate() 不适用于非 ui 线程

android - 重复调用 LineBackgroundSpan drawBackground()

android - 如何在 FrameLayout 中将元素右对齐?

android - 将带撇号的 XML 解析为 ' 时出错

关于 XML 布局标签属性的 Android SDK 信息