Saya mencoba untuk menulis kode yang digunakan untuk re-ukuran komponen UI ketika soft-keyboard muncul. Ketika saya menggunakan adjustResize, itu res-ukuran komponen UI dan pada saat yang sama adjustPan memberiku output yang sama. Saya ingin tahu perbedaan antara mereka dan kapan harus menggunakan setiap komponen? Yang satu(adjustPan atau adjustResize) baik untuk mengubah ukuran UI?
Berikut adalah 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>
dan menifest file:
<?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>
Dari Android Pengembang link Situs
"adjustResize"
kegiatan's jendela utama adalah selalu diubah ukurannya untuk membuat ruang untuk lembut keyboard pada layar.
"adjustPan"
kegiatan's jendela utama adalah tidak diubah ukurannya untuk membuat ruang untuk lembut keyboard. Sebaliknya, isi dari jendela yang secara otomatis menyorot sehingga fokus saat ini adalah tidak pernah tertutup oleh keyboard dan pengguna selalu dapat melihat apa yang mereka sedang mengetik. Hal ini umumnya kurang diminati dari resize, karena pengguna mungkin perlu untuk menutup keyboard lunak untuk mendapatkan dan berinteraksi dengan mengaburkan bagian-bagian dari jendela.
menurut komentar anda, gunakan berikut dalam aktivitas anda terwujud
<activity android:windowSoftInputMode="adjustResize"> </activity>
Sebagai doc kata ini juga menjaga dalam pikiran yang benar nilai kombinasi:
pengaturan harus menjadi salah satu dari nilai-nilai yang tercantum dalam tabel berikut, atau kombinasi dari satu "negara..." nilai plus satu "menyesuaikan..." nilai. Menetapkan beberapa nilai-nilai dalam kelompok — beberapa "negara..." nilai-nilai, misalnya — telah terdefinisi hasil. Nilai-nilai individu dipisahkan oleh vertical bar (|). Misalnya:
<activity android:windowSoftInputMode="stateVisible|adjustResize" . . . >