键盘隐藏了Android中ScrollView内的EditText?

时间:2015-08-12 08:17:53

标签: android android-layout android-studio scrollview android-5.1.1-lollipop

我已经嵌套了LinearLayouts,其中一个在ScrollView中有一组垂直的EditText。问题每当我点击其中一个EditText和Android中的键盘时,一半EditText会消失,如果我在第一个编辑文本中写,我甚至看不到它或滚动到它。

我在Stackoverflow中尝试了不同的解决方案,例如添加android:windowSoftInputMode="adjustPan|adjustResize",但无济于事。

这是我的 MainActivity.xml

 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="wrap_content"
    android:orientation="vertical"
    tools:context=".MainActivity">


    <ImageView
        android:layout_width="48dp"
        android:layout_height="48dp"
        android:layout_marginTop="10dp"
        android:src="@drawable/clac"
        android:scaleType="centerCrop"
        android:layout_gravity="center"
        />
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_gravity="center"
        android:layout_marginTop="16dp"
        >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Letter Grade"
            android:textSize="15sp"

            />
        <TextView

            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Credit Hours"
            android:textSize="15sp"
            android:layout_marginLeft="60dp"
            />
    </LinearLayout>
    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fillViewport="true"
        android:focusable="true"
        android:focusableInTouchMode="true">
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:layout_gravity="center"
    android:id="@+id/inputform">

    <LinearLayout

        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
android:layout_gravity="center"

        >

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"

            android:orientation="vertical">


            <EditText
                android:layout_marginTop="10dp"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:layout_width="48dp"
                android:layout_gravity="center"
                android:id="@+id/crs1" />
            <EditText
                android:gravity="center"
                android:layout_height="wrap_content"
                android:layout_width="48dp"
                android:layout_gravity="center"
                android:id="@+id/crs2" />
            <EditText
                android:gravity="center"
                android:layout_height="wrap_content"
                android:layout_width="48dp"
                android:layout_gravity="center"
                android:id="@+id/crs3" />
            <EditText
                android:gravity="center"
                android:layout_height="wrap_content"
                android:layout_width="48dp"
                android:layout_gravity="center"
                android:id="@+id/crs4" />
            <EditText
                android:gravity="center"
                android:layout_height="wrap_content"
                android:layout_width="48dp"
                android:layout_gravity="center"
                android:id="@+id/crs5" />
            <EditText
                android:gravity="center"
                android:layout_height="wrap_content"
                android:layout_width="48dp"
                android:layout_gravity="center"
                android:id="@+id/crs6" />
            <EditText
                android:gravity="center"
                android:layout_height="wrap_content"
                android:layout_width="48dp"
                android:layout_gravity="center"
                android:id="@+id/crs7" />

        </LinearLayout>





        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="64dp"
            android:orientation="vertical"
            >

            <EditText
                android:layout_marginTop="10dp"
                android:gravity="center"
                android:layout_height="wrap_content"
                android:layout_width="48dp"
                android:layout_gravity="center"
                android:id="@+id/credit1" />
            <EditText
                android:gravity="center"
                android:layout_height="wrap_content"
                android:layout_width="48dp"
                android:layout_gravity="center"
                android:id="@+id/credit2" />
            <EditText
                android:gravity="center"
                android:layout_height="wrap_content"
                android:layout_width="48dp"
                android:layout_gravity="center"
                android:id="@+id/credit3" />
            <EditText
                android:gravity="center"
                android:layout_height="wrap_content"
                android:layout_width="48dp"
                android:layout_gravity="center"
                android:id="@+id/credit4" />
            <EditText
                android:gravity="center"
                android:layout_height="wrap_content"
                android:layout_width="48dp"
                android:layout_gravity="center"
                android:id="@+id/credit5" />
            <EditText
                android:gravity="center"
                android:layout_height="wrap_content"
                android:layout_width="48dp"
                android:layout_gravity="center"
                android:id="@+id/credit6" />
            <EditText
                android:gravity="center"
                android:layout_height="wrap_content"
                android:layout_width="48dp"
                android:layout_gravity="center"
                android:id="@+id/credit7" />

        </LinearLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

        </LinearLayout>
    </LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:layout_marginTop="28dp"
    >
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Current GPA"
        android:layout_marginLeft="20dp"/>
    <EditText

        android:layout_height="wrap_content"
        android:layout_width="48dp"
        android:layout_marginLeft="5dp"
        android:id="@+id/currentgpa"/>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Taken Hours"
        android:layout_marginLeft="20dp"/>
    <EditText

        android:layout_height="wrap_content"
        android:layout_width="48dp"
        android:layout_marginLeft="8dp"
        android:id="@+id/currenthours"/>

</LinearLayout>
<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:layout_marginTop="16dp">
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Reset"
        android:onClick="clearForm"
        />
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Calculate"
        android:onClick="Calculate"
        />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="GPA"
        android:layout_marginLeft="30dp"
        android:id="@+id/gpa"/>

</LinearLayout>

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

谢谢,我感谢您的帮助。

4 个答案:

答案 0 :(得分:4)

根据您的问题,在活动清单中使用以下内容

<activity android:windowSoftInputMode="adjustPan"> </activity>

adjustPan

活动的主窗口未调整大小以便为软键盘腾出空间。 有关这方面的更多信息,请访问

  

http://developer.android.com/guide/topics/manifest/activity-element.html

答案 1 :(得分:0)

您只在声明文件中声明 android:windowSoftInputMode =“adjustPan”,从展示中删除 adjustResize

答案 2 :(得分:0)

我在设备上构建代码并在清单文件帮助中添加android:windowSoftInputMode="adjustPan"

在你的xml文件中

某事

   <ScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fillViewport="true"
    android:focusable="true"
    android:gravity="center_horizontal"
    android:focusableInTouchMode="true">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:gravity="center_horizontal"
        android:id="@+id/inputform"
        >

        <LinearLayout

            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal"

            >

某事

我刚刚在google“scrollview cut edittext”中搜索并回答了问题。你是一名程序员,你必须自己完成任务;)

答案 3 :(得分:0)

这是因为您的按钮布局包含在滚动视图中,因此当键盘出现时,按钮布局将占用一些空间。您可以像这样更改布局:(将windowSoftInputMode设置为adjustPan

<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:orientation="vertical"
    tools:context=".MainActivity">


    <ImageView
        android:id="@+id/img"
        android:layout_width="48dp"
        android:layout_height="48dp"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="10dp"
        android:scaleType="centerCrop"
        android:src="@mipmap/ic_launcher" />

    <LinearLayout
        android:id="@+id/title"
        android:layout_below="@id/img"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="16dp"
        android:orientation="horizontal">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Letter Grade"
            android:textSize="15sp"

            />

        <TextView

            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="60dp"
            android:text="Credit Hours"
            android:textSize="15sp" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/buttons"
        android:layout_alignParentBottom="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="16dp">

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:onClick="clearForm"
            android:text="Reset" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:onClick="Calculate"
            android:text="Calculate" />

        <TextView
            android:id="@+id/gpa"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="30dp"
            android:text="GPA" />

    </LinearLayout>

    <ScrollView
        android:id="@+id/scrollview"
        android:layout_below="@id/title"
        android:layout_above="@id/buttons"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fillViewport="true"
        android:focusable="true"
        android:focusableInTouchMode="true">

        <LinearLayout
            android:id="@+id/inputform"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:orientation="vertical">

            <LinearLayout

                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:orientation="horizontal"

                >

                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"

                    android:orientation="vertical">


                    <EditText
                        android:id="@+id/crs1"
                        android:layout_width="48dp"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:layout_marginTop="10dp"
                        android:gravity="center" />

                    <EditText
                        android:id="@+id/crs2"
                        android:layout_width="48dp"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:gravity="center" />

                    <EditText
                        android:id="@+id/crs3"
                        android:layout_width="48dp"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:gravity="center" />

                    <EditText
                        android:id="@+id/crs4"
                        android:layout_width="48dp"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:gravity="center" />

                    <EditText
                        android:id="@+id/crs5"
                        android:layout_width="48dp"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:gravity="center" />

                    <EditText
                        android:id="@+id/crs6"
                        android:layout_width="48dp"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:gravity="center" />

                    <EditText
                        android:id="@+id/crs7"
                        android:layout_width="48dp"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:gravity="center" />

                </LinearLayout>


                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="64dp"
                    android:orientation="vertical">

                    <EditText
                        android:id="@+id/credit1"
                        android:layout_width="48dp"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:layout_marginTop="10dp"
                        android:gravity="center" />

                    <EditText
                        android:id="@+id/credit2"
                        android:layout_width="48dp"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:gravity="center" />

                    <EditText
                        android:id="@+id/credit3"
                        android:layout_width="48dp"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:gravity="center" />

                    <EditText
                        android:id="@+id/credit4"
                        android:layout_width="48dp"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:gravity="center" />

                    <EditText
                        android:id="@+id/credit5"
                        android:layout_width="48dp"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:gravity="center" />

                    <EditText
                        android:id="@+id/credit6"
                        android:layout_width="48dp"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:gravity="center" />

                    <EditText
                        android:id="@+id/credit7"
                        android:layout_width="48dp"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:gravity="center" />

                </LinearLayout>

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content">

                </LinearLayout>
            </LinearLayout>

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="28dp"
                android:orientation="horizontal">

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="20dp"
                    android:text="Current GPA" />

                <EditText

                    android:id="@+id/currentgpa"
                    android:layout_width="48dp"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="5dp" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="20dp"
                    android:text="Taken Hours" />

                <EditText

                    android:id="@+id/currenthours"
                    android:layout_width="48dp"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="8dp" />

            </LinearLayout>



        </LinearLayout>
    </ScrollView>

</RelativeLayout>