残念ながら、現在のSDKでは、ソフトキーボードが表示されたり消えたりするときに、ビューがどのように動作するかについて、システムの慈悲に少し慣れています。あなたが探している動作を達成する最も良い方法は、ウィンドウにデフォルトの入力モードを残し、ビューにスクロール可能な要素が1つあることを確認することです。キーボードが隠されている間(スクロールビューより小さなコンテンツ)、この要素はスクロールする必要はありませんが、キーボードが表示されると、スクロール可能なビューのサイズが崩壊し、それ以外はすべてそのままになります。
例を示します。のは、これはあなたのres /レイアウト/ main.xmlであるとしましょう:Androidがリサイズされているので、
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:id="@+id/control"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:orientation="vertical">
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="A Button"/>
</LinearLayout>
<ScrollView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_above="@id/control">
</ScrollView>
</RelativeLayout>
は、基本的な活動のルートレイアウトとしてこれを試してみてください、あなたは全体LinearLayout
スライドキーボードで上下ことがわかりますScrollView
のビューポートではなく、フォーカスされた入力要素(これはあなたが現在見ている)を表示するのに十分なだけビューをスライドさせます。
状況を正しく理解していてもイメージをルートレイアウトバックグラウンドリソースに設定できず、レイアウトの残りの部分がキーボードで上下に動くようにサイズを変更する心配はありませんか? – ANemati