У меня есть макет, который использует EditText, чтобы пользователи могли искать базу данных и заполнять ListView. EditText составляет около 2/3 пути от верхней части экрана (помещается поверх ImageView и затем вводится текст вставки).
Проблема в том, что мягкая клавиатура скрывает EditText, поэтому пользователь не может видеть, что он печатает. (Я отключил автоматическое предложение.)
Я пробовал LinearLayout, RelativeLayout, paddings и различные выравнивания/центрирования, но я до сих пор не могу заставить его работать правильно. EditText либо скрыт, либо выталкивается из верхней части экрана, либо "сжимается" и искажается.
Предложения???
Возможным обходным путем является перемещение EditText в верхнюю часть экрана. Однако это отклоняется от графического дизайна, который мне дал.
Еще одно возможное обходное решение - это сделать мягкую клавиатуру открытой в полноэкранном режиме (не знаю, как это сделать). Это все равно скроет EditText, но затем я могу снова включить автоматическое предложение, чтобы пользователь мог видеть, что он печатает... вроде... потому что он может видеть только предложения о том, что он набирает.
Вот моя последняя попытка. См. "IntroFrame".
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:orientation="vertical">
<LinearLayout android:id="@+id/titleContainer"
android:orientation="horizontal" android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView android:text="@string/title_string"
android:textSize="15sp" android:textColor="#FFFFFF"
android:textStyle="bold" android:paddingLeft="5dp"
android:layout_height="fill_parent" android:layout_width="wrap_content" />
</LinearLayout>
<FrameLayout
android:id="@+id/introFrame"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal" >
<ImageView
android:src="@drawable/main_search_image"
android:scaleType="center"
android:layout_gravity="center"
android:layout_height="wrap_content"
android:layout_width="wrap_content"/>
<LinearLayout
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:paddingTop="140dp" >
<LinearLayout android:id="@+id/introSearchContainer"
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical" >
<LinearLayout
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1" >
<EditText android:id="@+id/intro_search_box"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint=" Enter keyword "
android:imeOptions="actionGo"
android:inputType="textFilter"
android:maxLines="1" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<Button android:id="@+id/intro_search_button"
android:background="@drawable/custom_button_go"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout>
<TextView
android:text="@string/search_intro"
android:textSize="15sp"
android:textColor="#FFFFFF"
android:layout_height="wrap_content"
android:layout_width="fill_parent" />
</LinearLayout>
</FrameLayout>
<LinearLayout android:id="@+id/listContainer"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ListView android:id="@+id/itemlist" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:cacheColorHint="#00000000" />
<TextView android:text="No data found" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:gravity="center"
android:textSize="16sp" android:textColor="#FFFFFF" android:id="@+id/android:empty" />
</LinearLayout>
</LinearLayout>