android 安卓系统,当键盘打开时,如何显示按钮到键盘顶部?

t3psigkw  于 2023-01-19  发布在  Android
关注(0)|答案(2)|浏览(132)

我需要显示我的按钮到软键盘的顶部(当它打开时)。为此我实现了这个https://medium.com/@madalinnita/android-how-to-move-views-above-keyboard-when-its-opened-quick-secure-solution-90188c4d7b15
我的布局结构:

<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical">
 <androidx.core.widget.NestedScrollView
        android:id="@+id/container"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fillViewport="true"
        android:isScrollContainer="true"
       app:layout_constraintBottom_toTopOf="@+id/bottomContainer"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent">

        <androidx.constraintlayout.widget.ConstraintLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">

           <EditText..../>
           <EditText..../>

        </androidx.constraintlayout.widget.ConstraintLayout>
    </androidx.core.widget.NestedScrollView>

 <Button
        android:id="@+id/button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        android:gravity="end"/>

</androidx.constraintlayout.widget.ConstraintLayout>

一切正常,但在小型设备上,我的按钮覆盖了编辑文本。有可能修复吗?我没有任何想法。我需要设法使按钮和键盘出现在编辑文本下,即使在小型设备上。
拜托,帮帮我。

ztigrdn8

ztigrdn81#

你可以把你的整个视图 Package 在一个ScrollView里面,这样你就可以在键盘打开的时候滚动视图。在这个例子中我使用了一个LinearLayout,你也可以使用其他的布局。

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fillViewport="true">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">
     ...
    </LinearLayout>
</ScrollView>

并将以下代码行添加到特定活动的清单中:

android:windowSoftInputMode="adjustResize"
9udxz4iz

9udxz4iz2#

在Manifest的当前活动标记中添加以下行-〉android:windowSoftInputMode="adjustResize",如下所示

<?xml version="1.0" encoding="utf-8"?>
<manifest ...>
    <uses-permission android:name="android.permission.INTERNET" />
    <application
        ...
        ...>
        
        <activity 
            android:name=".MainActivity"
            android:windowSoftInputMode="adjustResize"
            ...
            />
        ...
    </application>
</manifest>

相关问题