Подтвердить что ты не робот

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"

Кто-нибудь знает, почему он не работает и как убедиться, что он работает?

Спасибо заранее!

4b9b3361

Ответ 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 манифесте..