Как сохранить некоторые компоненты исправленными, когда вводится программная клавиатура? - PullRequest
4 голосов
/ 25 января 2011

Мое приложение является приложением чата, и его пользовательский интерфейс имеет вид:

Заголовок приложения
Просмотр списка
Сообщение чата, поле ввода и кнопка отправки

Нопроблема в том, что когда я щелкаю по тексту редактирования, появляется программная клавиатура и все поднимается, но мне нужен заголовок, чтобы оставаться на экране.Я приложил упрощенные изображения проблем и код пользовательского интерфейса здесь .(Я не могу опубликовать несколько ссылок или изображений в этом сообщении, потому что я новичок в Stack Overflow.)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_height="fill_parent"
    android:orientation="vertical">
    <TextView android:text="Header contents" android:layout_width="fill_parent"
        android:textSize="20sp" android:gravity="center_horizontal"
        android:layout_height="wrap_content" />
    <ListView android:id="@android:id/list" android:layout_width="fill_parent"
        android:layout_height="wrap_content" android:layout_weight="1" />

    <EditText android:text="" android:layout_gravity="bottom"
        android:id="@+id/EditText01" android:layout_width="fill_parent"
        android:layout_height="wrap_content"></EditText>
</LinearLayout>

Android имеет это требование в приложении обмена сообщениями по умолчанию.

У кого-нибудь есть идеи?

Ответы [ 3 ]

4 голосов
/ 03 апреля 2014

Вопрос довольно старый, но в любом случае - один из способов исправить это - поместить все, что находится ниже заголовка, в ScrollView.

Пример:

<!-- Both elements below are children of a parent RelativeLayout -->

<RelativeLayout
    android:id="@+id/custom_action_bar"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:isScrollContainer="false" >

    <!-- Header goes here. -->
    <!-- This part remains fixed even with the keypad popping up. -->

</RelativeLayout>

<ScrollView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/custom_action_bar"
    android:isScrollContainer="true" >

    <!-- Rest of the UI -->
    <!-- This part scrolls to accommodate the keyboard -->

 </ScrollView>
1 голос
/ 03 августа 2011

Решение, описанное здесь является решением.Ваша полноэкранная тема отвечает за то, что Камил Лос не может воспроизвести вашу проблему.

Вам необходимо настроить тег windowSoftInputMode действия, как описано здесь .

Попробуйте добавитьтег "android: windowSoftInputMode =" AdjustResize "" для оскорбительного действия в манифесте вашего приложения.

0 голосов
/ 25 января 2011

Это довольно странно, потому что я создал новый проект, вставил ваш макет и заголовок не исчезает в моем случае (ни в эмуляторе 2.2, ни в 1.6).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...