长按Android自定义键盘弹出键盘

Android custom keyboard popup keyboard on long press(长按Android自定义键盘弹出键盘)
本文介绍了长按Android自定义键盘弹出键盘的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我有自定义 Android 键盘:

I have custom Android keyboard:

    public class CustomKeyboard extends Keyboard{...}  

    public class CustomKeyboardView extends KeyboardView{...}

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

在某些键上,我有 popupKeyboardpopupCharacters:

On some keys, I have popupKeyboard and popupCharacters:

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

xml/key_popup.xml:

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" >
</Keyboard>

但是当我长按0"键弹出)"显示,但它一直在那里,直到我按下X"按钮或)"字符.它看起来像这样:

But when I longPress on "0" key popup with ")" shows, but it stays there until I press "X" button or ")" character. It looks like this:

而且我希望它仅在我握着手指时打开.三星或 HTC 键盘之类的东西:

And I want it to be opened only while I am holding a finger on. Something like on Samsung or HTC keyboard:

有人可以帮帮我吗?

编辑至少可以改变这个弹出窗口的外观吗?我希望它具有与我制作的整个键盘相同的背景和键/

EDIT Is it at least possible to change the appearance of this popup? I want it to have same background and keys as whole keyboard I have made/

推荐答案

您可以使用 PopupWindow 类并使用自定义布局填充它.

You can use PopupWindow class and populate it with custom layout.

View custom = LayoutInflater.from(context)
    .inflate(R.layout.your_layout, new FrameLayout(context));
PopupWindow popup = new PopupWindow(context);
popup.setContentView(custom);

长按

//Get x,y based on the touch position
//Get width, height based on your layout
if(popup.isShowing()){
    popup.update(x, y, width, height);
} else {
    popup.setWidth(width);
    popup.setHeight(height);
    popup.showAtLocation(yourKeyboardView, Gravity.NO_GRAVITY, x, y);
}

点击弹窗即可关闭

popup.dismiss();

这篇关于长按Android自定义键盘弹出键盘的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

相关文档推荐

How can I use CClistview in COCOS2d Android?(如何在 COCOS2d Android 中使用 CClistview?)
cocos2d-android: how to display score(cocos2d-android:如何显示分数)
Sqlite database not copied from asset folder Android(Sqlite 数据库未从资产文件夹 Android 复制)
SQLite Database Copy Appears Corrupted When Generated by Device and not Emulator(SQLite 数据库副本在由设备而不是模拟器生成时出现损坏)
Android file copy(安卓文件拷贝)
Android how to detect Copy event of Edittext in android(Android如何在android中检测Edittext的Copy事件)