У меня есть макет, который использует EditText, чтобы пользователи могли выполнять поиск в базе данных и заполнять ListView. EditText находится примерно на 2/3 расстояния от верхнего края экрана (размещается над ImageView и сопровождается вводным текстом).
Проблема в том, что программная клавиатура скрывает EditText, поэтому пользователь не может видеть, что он печатает. (Я отключил автоматическое предложение.)
Я ' Я пробовал LinearLayout, RelativeLayout, отступы и различные выравнивания / центрирования, но я все еще не могу заставить его работать правильно. 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>