【问题标题】:Popup layout in soft keyboard for Android?Android软键盘中的弹出布局?
【发布时间】:2012-12-20 01:32:05
【问题描述】:

我目前正在研究 android 中的软键盘实现。我感到困惑的一件事是当您按下任意键时在哪里实现弹出小方块(我在下面附上两个示例)。

我已经阅读了 SDK 中提供的示例应用程序“软键盘”,它具有此功能,但我找不到哪段代码实现了它。

有什么想法可以实现/修改它吗?

Sample app "Soft keyboard"

安卓默认键盘

【问题讨论】:

  • 我刚刚找到了一个 SO 帖子,这应该是我需要的 here 和 here。谁能结束我的问题?谢谢!
  • 关闭问题。只需勾选一个答案。如果您觉得需要,自己为未来的访客写一篇

标签: android android-layout android-softkeyboard


【解决方案1】:

这是您的预览布局。

preview.xml 的代码示例

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#ffffff"
android:gravity="center"
android:textColor="@color/black"
android:textSize="30sp"
android:textStyle="bold" >

</TextView>

在你的keyboardView的xml中调用你的预览:

android:keyPreviewLayout="@layout/preview"

或者您可以创建一个扩展 KeyboardView 的类并实现您自己的预览代码。

【讨论】:

    【解决方案2】:

    控制这个的部分位于LatinKeyboardView类中

    @Override
    protected boolean onLongPress(Key key) {
        if (key.codes[0] == Keyboard.KEYCODE_CANCEL) {
            getOnKeyboardActionListener().onKey(KEYCODE_OPTIONS, null);
            return true;
        } else {
            return super.onLongPress(key);
        }
    }
    

    您查看的部分在else 中。

    现在这会调用位于KeyboardView 中的super.onLongPress(key)。

    使用相应的代码自定义覆盖 else。

    你会找到参考here

    【讨论】:

    • 是的,我尝试添加我的条件。但是那里没有默认布局的代码,对吗?比如,我怎样才能修改弹出窗口,比如它的大小,或者它显示的内容?
    • 嗨,我刚刚找到了一些关于我的问题的相关帖子,就像我在上面在 cmets 中添加的一样。但是感谢您的帮助;感激不尽。
    猜你喜欢
    • 1970-01-01
    • 2015-08-25
    • 1970-01-01
    • 1970-01-01
    • 2016-04-20
    • 2011-10-09
    • 2016-07-15
    • 1970-01-01
    • 2018-08-28
    相关资源
    最近更新 更多