滚动视图内部的相对布局不可滚动

时间:2017-10-19 10:45:32

标签: android user-interface

我试图在屏幕中间创建一些带有几个字段的UI,并在底部创建一个按钮。当我在字段中写一个数字时,键盘会隐藏部分界面(我想要它),但我还需要整个界面可滚动,以便我可以调整屏幕并继续用键盘填充字段上。我已将整个设置放在相对布局中并将其放在滚动视图下。这里的帖子说它应该这样工作,但它不适合我。

XML代码

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.maaz.rakattracker.MainActivity">

<ScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fillViewport="true">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">


        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:orientation="vertical">

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:gravity="center"
                android:orientation="horizontal">

                <EditText
                    android:id="@+id/farzET"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:ems="10"
                    android:gravity="center"
                    android:hint="0"
                    android:inputType="number"
                    android:singleLine="true"
                    android:textAlignment="center" />

                <TextView
                    android:id="@+id/farzLbl"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:elevation="0dp"
                    android:ems="5"
                    android:text="farz"
                    android:textAlignment="center"
                    android:textSize="15sp" />

            </LinearLayout>

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:gravity="center"
                android:orientation="horizontal">

                <EditText
                    android:id="@+id/sunnatET"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:ems="10"
                    android:hint="0"
                    android:inputType="number"
                    android:singleLine="true"
                    android:textAlignment="center" />

                <TextView
                    android:id="@+id/sunnatLbl"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:ems="5"
                    android:text="Sunnat"
                    android:textAlignment="center"
                    android:textSize="15sp" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:orientation="horizontal">

                <EditText
                    android:id="@+id/naflET"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:ems="10"
                    android:gravity="center"
                    android:hint="0"
                    android:inputType="number"
                    android:singleLine="true"
                    android:textAlignment="center" />

                <TextView
                    android:id="@+id/naflLbl"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:ems="5"
                    android:text="Nafl"
                    android:textAlignment="center"
                    android:textSize="15sp" />

            </LinearLayout>

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:orientation="horizontal">

                <EditText
                    android:id="@+id/witrET"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:ems="10"
                    android:hint="0"
                    android:inputType="number"
                    android:singleLine="true"
                    android:textAlignment="center" />

                <TextView
                    android:id="@+id/witrLbl"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:ems="5"
                    android:text="Witr"
                    android:textAlignment="center"
                    android:textSize="15sp" />
            </LinearLayout>
        </LinearLayout>

        <Button
            android:id="@+id/startButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_centerHorizontal="true"
            android:text="Button" />
    </RelativeLayout>
</ScrollView>

请帮我解决这个问题。 感谢

4 个答案:

答案 0 :(得分:0)

尝试在onCreate()方法中的Activity中添加此代码:

getWindow()setSoftInputMode(LayoutParams.SOFT_INPUT_ADJUST_PAN);

答案 1 :(得分:0)

在您的清单中,将android:windowSoftInputMode="adjustResize"添加到您的活动代码中。

答案 2 :(得分:0)

在您的清单文件中添加

<activity
        android:name=".YOURACTIVITY"
        android:windowSoftInputMode="adjustPan" />
    <activity

答案 3 :(得分:0)

因为滚动视图仅适用于LinearLayout