长按按键时Android软键盘弹出 View

标签 android keyboard android-softkeyboard popupwindow

我正在开发 Android 软键盘:

public class CustomKeyboard extends Keyboard{...}  

    public class CustomKeyboardView extends KeyboardView{...}

    public class CustomKeyboardIME extends InputMethodService implements KeyboardView.OnKeyboardActionListener{...}

在某些键上,我有 popupKeyboard 和 popupCharacters:

<Key android:codes="144" android:keyLabel="0" android:popupKeyboard="@xml/key_popup" android:popupCharacters=")" android:keyEdgeFlags="right"/>

xml/key_popup.xml:

<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
  android:keyWidth="10%p"
  android:horizontalGap="0px"
  android:verticalGap="0px"
  android:keyHeight="@dimen/key_height" >

但是当我长按带有“)”的“0”键弹出窗口时,它会停留在那里,直到我按下“X”按钮或“)”字符。

而且我希望只有在我按住手指时才能打开它。类似 iPhone 键盘的内容:

i want popup like image

有人可以帮忙吗?

谢谢!!

最佳答案

我认为在这种情况下您需要创建自己的弹出窗口,使用 PopupWindow 或 Dialog。

然后你进入你的键盘并覆盖你的 onRelease 方法,像这样:

@Override
public void onRelease(int primaryCode) {  
    myPopupWindow.dismiss();
}

要制作您自己的键盘弹出窗口,请参阅此线程: Android custom keyboard popup keyboard on long press

关于长按按键时Android软键盘弹出 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32218574/

相关文章:

c - Linux 中的键盘频率

android - 在触摸自动完成编辑文本建议时隐藏软键盘

javascript - 使用 JavaScript 在 Android 4.0+ WebView 中检测键盘事件

c++ - 多个原始输入窗口接收器

java - 如何在 native Activity 中显示软键盘

java - 安卓 : How to programmatically open the soft keyboard in Emoji View

android - Android 小部件中的 GridView

android - 无法从 Android MpandroidChart 库图表中删除 android 的 x 值

android - 如何从android库中删除一些可绘制的密度

android - 如何读取另一台 Android 设备的 NFC ID?