У меня есть EditText и кнопка, закрепленная в нижней части RelativeLayout.
Когда вы нажимаете на EditText, открывается программная клавиатура, НО EditText и Button исчезают, но ОЧЕНЬ странным образом. Они на самом деле есть, потому что вы можете печатать, и вы также можете нажать, где кнопка должна быть чуть выше клавиатуры, и она реагирует на прикосновения, но ... вы на самом деле их не видите.
Не уверен, почему, но кажется, что это может быть связано с разрешением экрана? Он сломан на моем NexusOne, но работает на моем LS670. Сломан на эмуляторе с WVGA800, но работает на HVGA.
У меня был намного более сложный файл layout.xml, но мне удалось свести его к следующему простому случаю:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/test_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<EditText
android:id="@+id/test_text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentBottom="true"
android:layout_toLeftOf="@+id/test_textButton"
/>
<Button
android:id="@id/test_textButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:text="OK"/>
</RelativeLayout>
EDIT:
Так что, чем больше я смотрю на это, тем больше это ошибка в движке раскладки. Когда я нажимаю на EditText, я могу видеть, как EditText анимируется вверх до того, как клавиатура его закрывает. Это просто не достаточно высоко. Похоже, что-то связано с широким разрешением экрана. Если я в конечном итоге добавлю поле редактирования в 100 dip, я едва увижу, как оно высовывается над клавиатурой, а 200 dip заставляет его показываться в основном. ОПЯТЬ, это работает на экранах HVGA нормально. Кнопка, спрятанная под клавиатурой, все еще реагировала на мое прикосновение чуть выше клавиатуры, что было странно.