我正在开发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键盘上的东西:
任何人都可以提供帮助吗?
谢谢!
答案 0 :(得分:1)
我认为在这种情况下你需要使用PopupWindow或Dialog创建自己的弹出窗口。
然后你进入你的键盘并覆盖你的onRelease方法,如下所示:
@Override
public void onRelease(int primaryCode) {
myPopupWindow.dismiss();
}
要为键盘制作自己的popupWindow,请参阅此主题: Android custom keyboard popup keyboard on long press