将自定义视图附加到Android键盘的顶部

时间:2013-02-06 09:44:50

标签: android keyboard

在Android软键盘顶部附加xml中定义的布局的最简单方法是什么。 此视图应仅在键盘出现时显示。

4 个答案:

答案 0 :(得分:0)

我认为最好的方法是检测键盘何时出现,然后将视图附加到屏幕底部(调整所有布局后,它将位于键盘上方)。

答案 1 :(得分:0)

我认为这篇文章与其他帖子有很多关系:How to draw view on top of soft keyboard like WhatsApp?并且针对此问题有几种解决方案。

答案 2 :(得分:0)

我认为更清洁的方法。

  1. 定义用作自定义视图的布局资源文件

  2. 创建一个方法,使该布局资源文件膨胀并将其作为视图返回: 代码片段

    public View returnPayKeyView(){
    查看simpleView = getLayoutInflater()。inflate(R.layout.simpleresource,null);

    返回simpleView;

    }

  3. 使用setCandidatesView方法将此返回的视图设置为候选

  4. 返回的视图将使用膨胀的xml布局资源显示在键盘上方。

答案 3 :(得分:0)

一种方法是将通常的视图布局包装在FrameLayout中,并将所需的位放在键盘上方的框架内,以及其他视图布局的底部重力。

我的布局遵循以下原则:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <!-- all your stuff... -->

        </LinearLayout>

    </ScrollView>

    <LinearLayout
        android:id="@+id/stuffAboveKeyboardLayout"
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:layout_gravity="bottom"
        android:orientation="horizontal"
        android:background="#DDD">

        <!-- stuff above keyboard... -->

    </LinearLayout>

</FrameLayout>

缺点是,即使隐藏了键盘,它也会显示-但是当键盘显示/隐藏时,应该可以显示/隐藏视图:How do I Detect if Software Keyboard is Visible on Android Device?