Como faço para que uma visualização flutue acima de outras visualizações em um IME?
Estou tentando fazer um ListViewem meu IME "flutuar" no meio da tela, assim como o teclado Swype:
Eu li como fazer isso em uma Atividade usando um FrameLayout, mas não está funcionando no meu IME, que é um Serviço, não uma Atividade. Minha exibição de entrada consiste em um FrameLayout como a exibição raiz, um filho RelativeLayout contendo vários controles e o ListView, que também é filho do FrameLayout. Aqui está o meu código de layout:
<?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>
O ListView e o IME são assim (dentro do aplicativo SMS):
Mas eu quero que fique assim:
Em outras palavras, quero que apareçalado de for a visualização de entrada do IME. Se o Swype pode fazer isso, eu sei que posso (com uma pequena ajuda). Alguma sugestão
Desde já, obrigado! Barry