1. ホーム
  2. android

[解決済み] ソフトキーボードが表示されたときにレイアウトを調整する方法

2022-04-21 10:54:12

質問

ソフトキーボードが起動したときに、以下のようにレイアウトを調整したり、サイズを変更したりしたいです。

使用前と使用後。


SOでいくつかのリソースを発見しました。

  1. ソフトキーボードが表示されている間、すべてのフィールドとテキストを表示し続ける方法
  2. アンドロイドソフトキーボードが表示されるとレイアウトが崩れる
  3. ソフトキーボードがオンの時のレイアウトを調整する

しかし、質問と回答はどちらかというと曖昧です。

要求事項

  • あらゆる画面サイズの携帯電話で動作する必要があります。
  • FACEBOOK"と"Sign Up for FACEBOOKのマージン/パディングのスペースに気づきました。 Facebook"の前後で変化しています。
  • スクロールビューは関係ありません。

解決方法は?

を追加するだけです。

android:windowSoftInputMode="adjustResize"

をAndroidManifest.xmlで宣言すると、この特定のアクティビティが調整され、レイアウトのリサイズオプションが適用されます。

レイアウト設計のためのいくつかのソースコードを以下に示します。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="20dp"
        android:text="FaceBook"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <EditText
        android:id="@+id/editText1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textView1"
        android:layout_marginTop="30dp"
        android:ems="10"
        android:hint="username" >

        <requestFocus />
    </EditText>

    <EditText
        android:id="@+id/editText2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/editText1"
        android:layout_marginTop="20dp"
        android:ems="10"
        android:hint="password" />

    <Button
        android:id="@+id/button1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/editText2"
        android:layout_centerHorizontal="true"
        android:layout_marginLeft="18dp"
        android:layout_marginTop="20dp"
        android:text="Log In" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_marginTop="17dp"
        android:gravity="center"
        android:text="Sign up for facebook"
        android:textAppearance="?android:attr/textAppearanceLarge" />

</RelativeLayout>