У меня есть макет, содержащий 5 EditText
и Button
и TextView
внизу. Теперь, когда я нажимаю EditText
, клавиатура будет показана, а все мой View
будет нажат.
Теперь я не хочу нажимать клавиши TextView
и Button
на клавиатуру выше, просто хочу отжать все EditText
внутри ScrollView
до клавиатуры выше.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="#ff0"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
>
<EditText
android:layout_marginTop="30dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="EditText 1"
/>
<EditText
android:layout_marginTop="30dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="EditText 2"
/>
<EditText
android:layout_marginTop="30dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="EditText 3"
/>
<EditText
android:layout_marginTop="30dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="EditText 4"
/>
<EditText
android:layout_marginTop="30dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="EditText 5"
android:inputType="textNoSuggestions"
/>
</LinearLayout>
</ScrollView>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:text="Button"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#000"
android:text="I don't want to push this TextView and Button to above keyboard when keyboard is shown. Just obly want to push the ScrollView that contain all EditText"
/>
</LinearLayout>
У меня есть идея. Когда я слушаю, когда клавиатура показывается и скрывается. При показе клавиатуры я устанавливаю нижнее поле ScrollView = высота клавиатуры, когда клавиатура скрывается, я задаю этот край = 0.
Есть ли способ справиться с моим делом? Любая помощь или предложение были бы очень оценены.
UPDATE
Если я использую windowSoftInputMode=adjustPan
= > не все EditText
нажатие на клавиатуру выше
Если я использую windowSoftInputMode=adjustResize
= > Button
, TextView
и все EditText
нажимают вверх до клавиатуры