我尝试编写一个代码,用于在出现软键盘 时重新调整 UI 组件的大小。当我使用 adjustResize 时, 它会重新调整 UI 组件的大小,同时 adjustPan 给了我相同的输出。我想知道它们之间的区别以及何时使用每个组件?哪个(adjustPan 或 adjustResize)适合调整 UI 大小?
这是我的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 开发者网站链接
“调整大小” Activity 的主窗口总是调整大小,以便为屏幕上的软键盘腾出空间。 “调整盘” Activity 的主窗口没有调整大小来为软键盘腾出空间。相反,窗口的内容会自动平移,因此当前焦点永远不会被键盘遮挡,用户始终可以看到他们正在输入的内容。这通常不如调整大小可取,因为用户可能需要关闭软键盘才能到达窗口的模糊部分并与之交互。
“调整大小”
Activity 的主窗口总是调整大小,以便为屏幕上的软键盘腾出空间。
“调整盘”
Activity 的主窗口没有调整大小来为软键盘腾出空间。相反,窗口的内容会自动平移,因此当前焦点永远不会被键盘遮挡,用户始终可以看到他们正在输入的内容。这通常不如调整大小可取,因为用户可能需要关闭软键盘才能到达窗口的模糊部分并与之交互。
根据您的评论,在您的活动清单中使用以下内容
<activity android:windowSoftInputMode="adjustResize"> </activity>