Scrollview无法在Android中使用此XML文件

时间:2016-07-13 03:57:56

标签: android android-layout

当我点击edittext输入密码或用户名时,这对我的登录不起作用,我想在虚拟/软键盘打开时滚动项目。

我还尝试将Scrollview作为父标记然后使用LinearLayout标记,但内容仅从顶部开始,而我希望内容位于中心,因为我的背景有登录徽标。

<LinearLayout
        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"
        android:background="@drawable/login"
        android:gravity="center">

        <ScrollView 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">
            <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="wrap_content"
                android:layout_gravity="center"
                android:gravity="center">

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

                    <EditText
                        android:id="@+id/edt_email"
                        android:layout_width="match_parent"
                        android:layout_height="50dp"
                        android:hint="Email Address"
                        android:gravity="center|left"
                        android:textSize="16sp"
                        android:textColorHint="#c3c3c3"
                        android:singleLine="true"
                        android:background="@drawable/black_underline"
                        android:inputType="textEmailAddress"
                        android:paddingLeft="5dp"
                        android:textColor="#000"
                        />
                    <EditText
                        android:id="@+id/edt_phone"
                        android:layout_width="match_parent"
                        android:layout_height="50dp"
                        android:hint="Phone Number"
                        android:gravity="center|left"
                        android:textSize="16sp"
                        android:textColorHint="#c3c3c3"
                        android:singleLine="true"
                        android:maxLength="10"
                        android:background="@drawable/black_underline"
                        android:inputType="number"
                        android:paddingLeft="5dp"
                        android:textColor="#000"

                        />

                    <Button
                        android:id="@+id/btn_otp"
                        android:layout_width="match_parent"
                        android:layout_height="50dp"
                        android:layout_marginTop="20dp"
                        android:background="#449284"
                        android:text="Generate OTP Password"
                        android:textAllCaps="false"
                        android:textSize="20sp"
                        android:textColor="#fff"
                        android:gravity="center"
                        />

                    <EditText
                        android:id="@+id/edt_otp"
                        android:layout_width="match_parent"
                        android:layout_height="50dp"
                        android:hint="OTP Password"
                        android:background="@drawable/black_underline"
                        android:gravity="center|left"
                        android:textSize="16sp"
                        android:textColorHint="#c3c3c3"
                        android:visibility="gone"
                        android:singleLine="true"
                        android:inputType="number"
                        android:layout_marginTop="20dp"
                        android:paddingLeft="5dp"
                        android:textColor="#000"

                        />
                    <Button
                        android:id="@+id/btn_submit"
                        android:layout_width="match_parent"
                        android:layout_height="50dp"
                        android:layout_marginTop="20dp"
                        android:background="#449284"
                        android:text="Submit"
                        android:textSize="20sp"
                        android:textAllCaps="false"
                        android:visibility="gone"
                        android:textColor="#fff"
                        android:gravity="center"
                        />


                </LinearLayout>

            </RelativeLayout>
        </ScrollView>
    </LinearLayout>

3 个答案:

答案 0 :(得分:1)

如果你想使用ScrollView,那么它必须是父母。然后,您可以使用RelativeLayout作为父级,根据您的要求定位元素。 您也可以尝试在ScrollView中设置android:fillViewport="true"

如果您不能将ScrollView作为父母,请考虑改为使用NestedScrollView

答案 1 :(得分:1)

添加

android:windowSoftInputMode="adjustResize"

将此行添加到Manifest中的特定活动。

答案 2 :(得分:1)

你必须添加

        android:windowSoftInputMode="adjustResize" 

在该特定活动的清单中。并将此属性添加到ScrollView

    android:fillViewport="true"

如果您使用此行

  android:windowTranslucentStatus=true 
主题中的

意味着删除它。