当软键盘出现时将布局向上移动

3

我有一个带有电子邮件ID、密码和登录按钮的登录页面。现在,当任何一个编辑文本获得焦点时,系统键盘会隐藏我的登录按钮。我想在键盘出现时将布局向上推,使登录按钮保持在键盘之上。

附注:我已尝试了所有解决方案,如在清单中使用“adjust Pan | adjust Resize”、“adjust Pan”、“adjust Resize”,以及在Java代码中使用它们。但是,没有一件事对我起作用。

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

    <RelativeLayout
        android:id="@+id/newl"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">



<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="145dp"
    android:drawablePadding="8dp"
    android:layout_gravity="center_horizontal"
    android:src="@drawable/ic_clock"
    android:id="@+id/clock"
    />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Timetracker"
    android:fontFamily="LucidaGrande"
    android:textSize="30dp"
    android:textAlignment="center"
    android:layout_marginTop="15dp"
    android:layout_gravity="center_horizontal"
    android:id="@+id/tt"
    android:layout_below="@+id/clock"
    android:textColor="#FFFFFF"

    android:layout_centerHorizontal="true"
    />

<LinearLayout
    android:layout_below="@+id/tt"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_marginTop="30dp"

        >

        <ImageView
            android:layout_marginLeft="7dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/ic_person_black_24dp"
           android:layout_centerVertical="true"
            />

        <Spinner
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:backgroundTint="#FFFFFF"
            android:layout_marginLeft="9dp"
            android:drawablePadding="12dp"
            android:textSize="15dp"
            android:layout_marginRight="45dp"
            android:fontFamily="Sans Serif"
            android:layout_centerInParent="true"
            android:textColor="#FFFFFF"
            android:background="@android:color/transparent"
            android:id="@+id/spinner2"
            />

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/ic_arrow_drop_down_black_24dp"
            android:layout_alignParentRight="true"
            android:paddingRight="8dp"
            android:layout_centerVertical="true"/>

        </RelativeLayout>

    <View
        android:layout_below="@+id/rel"
        android:layout_width="match_parent"
        android:background="#FFF"
        android:layout_marginRight="10dp"
        android:layout_marginLeft="10dp"
        android:layout_height="1dp"/>


    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:drawableLeft="@drawable/lock"
        android:drawablePadding="12dp"
        android:layout_marginTop="30dp"
        android:layout_below="@+id/rel"
        android:layout_marginRight="7dp"
        android:layout_marginBottom="10dp"
        android:layout_marginLeft="7dp"
        android:hint="Password"
        android:background="@android:color/transparent"
        android:textColorHint="#FFFFFF"
        android:textSize="20dp"

        android:textColor="#FFFFFF"
        android:id="@+id/editText"
        android:inputType="textPassword"
        android:backgroundTint="#FFFFFF"
        />

    <View
        android:layout_below="@+id/editText"
        android:layout_width="match_parent"
        android:background="#FFF"
        android:layout_marginRight="10dp"
        android:layout_marginLeft="10dp"
        android:layout_height="1dp"/>


    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="30dp"
        android:layout_below="@+id/editText"
        android:layout_marginRight="10dp"
        android:layout_marginLeft="10dp"
        android:background="#FFFFFF"
        android:text="LOG IN"

        android:id="@+id/log"
        android:textColor="#D04045"/>



</LinearLayout>


    </RelativeLayout>

</ScrollView>

将滚动视图(ScrollView)中的外部线性布局(LinearLayout)移除,并改用相对布局(RelativeLayout)。 - Learning Always
@janki 我已经将线性布局更改为相对布局,但问题仍然存在。 - Kiran Koravi
请将您更新的代码发送到这里。因为在我的情况下它运行良好。 - Learning Always
@janki 我已经更新了我的问题,并添加了新的代码。ScrollView被包裹在RelativeLayout下,请检查一下。 - Kiran Koravi
2个回答

2
解决方案是在ScrollView上使用android:fillViewport="true"。
同时,您还可以使用android:windowSoftInputMode="adjustResize"。
这对我起了作用。

1

请尝试以下操作,在您的清单文件中添加以下行:

android:windowSoftInputMode="adjustResize"

For example,

<activity android:name=".Game"  android:windowSoftInputMode="adjustResize">

    </activity>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接