1. ホーム
  2. android

[解決済み] androidのadjustResizeとadjustPanの違い?

2022-04-22 07:09:42

質問

の時にUIコンポーネントのサイズを変更するコードを書こうとしました。 ソフトキーボード が表示されます。 このとき adjustResize, は、UI コンポーネントのサイズを変更し、同時に アジャストパン は私に同じ出力を与えました。 両者の違いや、それぞれのコンポーネントを使用するタイミングを知りたいのですが。UIのリサイズにはどちら(adjustPanまたはadjustResize)が良いですか?

以下は私のxmlです。

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

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:orientation="vertical" >

            <EditText
                android:id="@+id/editText5"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="45dp"
                android:ems="10"
                android:inputType="textPersonName" />

            <Button
                android:id="@+id/button1"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginBottom="40dp"
                android:text="My Button" />
        </LinearLayout>
    </RelativeLayout>

</ScrollView>

とメニフェストファイルがあります。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.adjustscroll"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.adjustscroll.MainActivity"
            android:label="@string/app_name"
            android:windowSoftInputMode="adjustPan|adjustResize" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

解決方法は?

からの Androidデベロッパーサイトへのリンク

<ブロッククオート

adjustResize"

アクティビティのメイン・ウィンドウは常にリサイズされ、ソフト キーボードを画面上に表示します。

adjustPan"

アクティビティのメインウィンドウは、ソフトウエアのためにサイズ変更されません。 キーボード その代わり、ウィンドウのコンテンツは自動的にパンされます。 キーボードでフォーカスが遮られることがなく、ユーザーが安心して使用できます。 は、常に入力中の文字を見ることができます。これは一般的にあまり好ましくない リサイズよりも、ユーザーがソフトキーボードを閉じなければならない場合があるため を取得し、ウィンドウの不明瞭な部分と対話することができます。

コメントに従い、アクティビティマニフェストで以下を使用します。

<activity android:windowSoftInputMode="adjustResize"> </activity>