Android: ScrollView не прокручивает клавиатуру
У меня есть макет с некоторыми представлениями, из которых один является EditText. Макет легко помещается на одной странице, НО, когда мягкая клавиатура выключена, макет не прокручивается.
Вот краткое описание моего макета:
<?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:background="@drawable/background" >
<ScrollView
android:id="@+id/ScrollView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<CheckBox/>
<TextView/>
<LinearLayout>
<EditText>
<requestFocus />
</EditText>
</LinearLayout>
<TextView/>
<LinearLayout>
<Spinner/>
</LinearLayout>
</LinearLayout>
</ScrollView>
<Button
android:layout_alignParentBottom="true" />
</RelativeLayout>
И в моем манифесте я объявил атрибут:
android:windowSoftInputMode="adjustResize|stateHidden"
Кто-нибудь знает, почему он не работает и как убедиться, что он работает?
Спасибо заранее!
Ответы
Ответ 1
Хорошо, видимо, ScrollView android:layout_height
не должен быть установлен на wrap_content
. Я установил его в match_parent
и установил android:layout_above
в кнопку внизу страницы.
Не спрашивайте меня, почему, но это исправило проблему.
Ответ 2
У меня была та же проблема, и я проверил свою активность в манифесте, и причина, по которой он не работал, заключается в том, что я не использовал это свойство:
android:windowSoftInputMode="adjustResize"
Теперь он отлично работает и не требует дополнительных якорей.
Ответ 3
В моем случае ничего из этого не было.
У меня была item name="android:windowTranslucentStatus">true</item>
в моей теме. И это было исправлено установкой android:fitsSystemWindows="true"
в родительском макете, где находится мое scrollview.
Ответ 4
Добавьте android:windowSoftInputMode="stateHidden|adjustResize"
в свой тег в файле AndroidManifest.xml. После того, как будет показана мягкая клавиатура, это приведет к изменению размера экрана влево над пространством. Таким образом, вы сможете легко прокручивать.
Ответ 5
В моем случае любое из приведенных выше решений не работает, пока я УДАЛЮ
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
в своей деятельности я использую этот код для полноэкранного отображения. Может быть, для определенных случаев, попробуйте удалить любую настройку в полноэкранном режиме, чтобы любое из вышеуказанных решений работало.
Ответ 6
Моя проблема была с HorizontalScrollView. В моем случае мне пришлось установить HorizontalScrollView в:
android:layout_width="match_parent"
android:layout_height="match_parent"
И удалите:
android:layout_above="@+id/closeButton"
android:layout_below="@+id/logo"
В AndroidManifest.xml действие установлено на:
android:windowSoftInputMode=""
Я надеюсь, что это поможет любому, кто отправляется через эту странную ошибку.
Ответ 7
Попробуйте установить ScrollView в качестве родительского макета. Это работает как прелесть для меня!
Ответ 8
<activity
android:windowSoftInputMode="adjustResize"
>
попробуйте это в Android манифесте..