Я пытаюсь сделать ListView в моем IME"плавающим" в середине экрана, точно так же, как клавиатура Swype:
![enter image description here](https://i.stack.imgur.com/RTGg3.png)
Я читал, как это сделать в Activity, используя FrameLayout, но он не работает в моем IME, который является Сервисом, а не Activity. Мое входное представление состоит из FrameLayout в качестве корневого представления, дочернего RelativeLayout, содержащего несколько элементов управления, и ListView, который также является дочерним для FrameLayout. Вот мой код компоновки:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:gravity="center_horizontal" >
<!-- Most of the controls are children of this RelativeLayout -->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center" >
<Button android:id="@+id/btnOption1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="10dp"
android:layout_alignParentLeft="true"
android:layout_toLeftOf="@+id/imgArrow"
android:layout_marginTop="10dp"
android:textSize="18dp"
android:textColor="#ffffff"
android:background="@drawable/button"
android:padding="4dp"
android:text="Option 1" />
<ImageView android:id="@id/imgArrow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="10dp"
android:layout_centerHorizontal="true"
android:layout_alignBottom="@id/btnOption1"
android:layout_marginTop="10dp"
android:padding="4dp"
android:src="@drawable/arrow_right" />
<Button android:id="@+id/btnOption2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_toRightOf="@id/imgArrow"
android:layout_marginTop="10dp"
android:textSize="18dp"
android:textColor="#ffffff"
android:background="@drawable/button"
android:padding="4dp"
android:text="Option 2" />
<!-- Translate button -->
<Button android:id="@+id/btnContinue"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_below="@id/imgArrow"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:textSize="22dp"
android:textColor="#ffffff"
android:background="@drawable/button"
android:text="Translate!" />
<!-- Keyboard button -->
<ImageButton android:id="@+id/btnKeyboard"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@id/btnContinue"
android:layout_marginRight="4dp"
android:textColor="#ffffff"
android:background="@drawable/button"
android:src="@drawable/sym_keyboard_kb" />
<!-- Undo button -->
<ImageButton android:id="@+id/btnUndo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_below="@id/btnContinue"
android:textColor="#ffffff"
android:background="@drawable/button"
android:src="@drawable/sym_keyboard_undo" />
</RelativeLayout>
<ListView android:id="@+id/menuOptions"
style="@style/optionsMenu" />
</FrameLayout>
ListView и IME выглядят так (в приложении SMS):
![enter image description here](https://i.stack.imgur.com/Gryhj.png)
Но я хочу, чтобы это выглядело так:
![enter image description here](https://i.stack.imgur.com/2i3tW.png)
Другими словами, я хочу, чтобы он отображался за пределами представления ввода IME. Если Swype может это сделать, я знаю, что смогу (с небольшой помощью). Есть предложения?
Заранее спасибо!
Barry