简体   繁体   English

如何在IME中使视图浮于其他视图之上?

[英]How do I make a view float above other views in an IME?

I am trying to make a ListView in my IME "float" in the middle of the screen, just like the Swype keyboard: 我试图在屏幕中间的IME “浮动”中创建一个ListView,就像Swype键盘一样:

在此处输入图片说明

I've read how to do it in an Activity by using a FrameLayout, but it isn't working in my IME, which is a Service not an Activity. 我已经阅读了如何通过使用FrameLayout在活动中执行此操作,但是它在我的IME中不起作用,该IME是服务而不是活动。 My input view consists of a FrameLayout as the root view, a child RelativeLayout containing several controls, and the ListView which is also a child of the FrameLayout. 我的输入视图由一个FrameLayout作为根视图,一个包含多个控件的子RelativeLayout和一个ListView组成,后者也是FrameLayout的子代。 Here is my layout code: 这是我的布局代码:

<?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>

The ListView and IME look like this (inside the SMS app): ListView和IME如下所示(在SMS应用程序内部):

在此处输入图片说明

But I want it to look like this: 但我希望它看起来像这样:

在此处输入图片说明

In other words I want it to appear outside the IME input view. 换句话说,我希望它的IME输入视图之外出现。 If Swype can do it, I know I can (with a little help). 如果Swype可以做到,我知道我可以(在一点帮助下)。 Any suggestions? 有什么建议么?

Thanks in advance! 提前致谢! Barry 巴里

I found the solution to my problem, and posted the answer in another thread: Android IME: showing a custom pop-up dialog (like Swype keyboard) which can enter text into the TextView 我找到了解决问题的方法,并在另一个线程中发布了答案: Android IME:显示了一个自定义弹出对话框(如Swype键盘),可以在TextView中输入文本

Barry 巴里

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM