У меня есть простой пользовательский интерфейс: EditText должен располагаться ниже SurfaceView. Я использую RelativeLayout для упорядочения этих двух представлений.
Теперь, когда я нажимаю на EditText, чтобы открыть виртуальную клавиатуру, SurfaceView соскальзывает, но EditText скрыт и не отображает типизированную строку.
Для воспроизведения используйте следующий макет XML-кода:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/RelativeLayout01"
android:layout_height="fill_parent"
android:layout_width="fill_parent">
<SurfaceView
android:id="@+id/SurfaceView01"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
</SurfaceView>
<EditText
android:id="@+id/EditText01"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentBottom="true"
android:selectAllOnFocus="true"
android:textStyle="normal"
android:singleLine="true">
</EditText>
</RelativeLayout>
Основной класс активности должен показывать только макет. Когда я запускаю программу и нажимаю EditText, появляется виртуальная клавиатура, но поле EditText отсутствует.
Возможно, RelativeLayout вызывает проблемы, но я не знаю, как воспроизвести один и тот же макет с другим классом Layout.
Любые предложения приветствуются, я очень ценю вашу помощь.
Спасибо.
Edit:
Вот два скриншота: один показывает EditText внизу без виртуальной клавиатуры, один с виртуальной клавиатурой, но без EditText. Интересно отметить, что SurfaceView и EditText действительно сдвигаются вверх, EditText просто исчезает. Кстати, это также происходит с кнопкой, если она находится рядом с EditText.
EditText ниже SurfaceView (слева); EditText отсутствует (справа)