ScrollView не отвечает на клавиатуру

У меня проблема с поведением прокрутки EditText в ScrollViews, обычно он прокручивает содержимое внутри прокрутки, если над ним открывается клавиатура. Но если вы динамически заполняете макет внутри прокрутки, нажимаете на клавиатуре весь экран, у кого-то еще раньше была такая проблема. Заранее спасибо.

<ScrollView
    android:id="@+id/scroll_view"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/header_area" >

        <LinearLayout
            android:id="@+id/contentHolder"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical" >
        </LinearLayout>
</ScrollView>

Этот пример работает в обычном режиме с линейной прокруткой в ​​режиме прокрутки, но показывает прокрутки даже при закрытой клавиатуре. Я не могу использовать фиксированные высоты.

 <ScrollView
        android:id="@+id/scroll_view"
        android:layout_width="fill_parent"
        android:layout_height="100dip"
        android:layout_below="@+id/header_area" >

            <LinearLayout
                android:id="@+id/contentHolder"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical" >
            </LinearLayout>
    </ScrollView>

Я попробовал xml ниже, он работает, как и ожидалось, в новом проекте, но в моем проекте открывается окно вверх. Я нашел некоторых других людей, имеющих эту проблему, я поделюсь решением как можно скорее, я нашел это.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/mainLayout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">


    <RelativeLayout
        android:id="@+id/header_area"
        android:layout_width="match_parent"
        android:layout_height="50dip" >
    </RelativeLayout>

    <ScrollView
        android:id="@+id/scroll_view"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">

        <LinearLayout
            android:id="@+id/contentHolder"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:orientation="vertical" >

            <EditText 
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"/>
            <EditText 
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"/>
            <EditText 
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"/>
            <EditText 
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"/>
            <EditText 
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"/>
            <EditText 
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"/>
        </LinearLayout>
    </ScrollView>

</LinearLayout>

2 ответа

Решение
<application
    android:icon="@drawable/is_logo_iphone"
    android:label="@string/app_name"
    android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" >

Проблема в том, что тема "Fullscreen" не поддерживает изменение размера. С помощью

    android:theme="@android:style/Theme.Black.NoTitleBar"

решает проблему.
Спасибо за ответы.

Это потому, что размер вашего прокрутки можно изменить. Попробуйте вместо этого установить высоту вашего прокрутки в match_parent.

Попробуйте также установить android:fillViewport="true" внутри вашего прокрутки.

Кроме того, вы не случайно добавили что-то вроде следующего в тег активности вашего манифеста: android:windowSoftInputMode="adjustResize" Это в значительной степени разрушило бы все наши усилия. Если у вас есть следующее в манифесте, удалите его.

Вы, вероятно, должны настроить свой манифест. Вот список возможных конфигураций программной клавиатуры. Это может быть android:windowSoftInputMode="adjustPan" Вы хотите использовать.

Другие вопросы по тегам