我花了几个小时来调试这些SO问题中描述的相同问题:
Android: How do I prevent the soft keyboard from pushing my view up?
How to avoid soft keyboard pushing up my layout?
Android: How do I prevent the soft keyboard from pushing my view up?
generally accepted answer将android:windowSoftInputMode="adjustPan"
添加到清单活动声明中。这可以使打开键盘时屏幕保持原状,但是当输入的行数多于屏幕可显示的文本时,它不会阻止屏幕滚动。这是我实施该解决方案时看到的:
打开键盘时,标题仍然保留,但是,如果您键入几行,标题最终将滚动到屏幕顶部。
我尝试使用Google搜索这个问题来尝试解决它,但没有一个解决方案起作用。然后,我通过与上述公认的答案相反的方法设法解决了这个问题。
作为参考,我的布局xml文件:
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/header"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent"/>
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_constraintTop_toBottomOf="@id/header"
android:fillViewport="true">
<EditText
android:id="@+id/noteText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textMultiLine"
android:windowSoftInputMode="adjustPan"/>
</ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>
我的清单:
<activity android:name=".activity.MainActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan"
android:resizeableActivity="true"
tools:targetApi="n"/>