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"
Вы хотите использовать.