我已经关注了developer.android.com上有关输入法的示例,并使用了SoftKeyboard示例应用程序。这些共同提供了有关创建简单键盘的足够信息。
我使用" android:popupKeyboard"。
制作弹出键盘<Row android:keyHeight="@dimen/key_height"
android:id="@+id/label"
>
<Key android:codes="97" android:keyLabel="a" android:horizontalGap="@dimen/horizontal_border_gap"
android:keyEdgeFlags="left" android:keyBackground="@drawable/key_btn_l" android:popupKeyboard="@xml/popup"/>
<Key android:codes="115" android:keyLabel="s" android:keyBackground="@drawable/key_btn_l"/>
<Key android:codes="100" android:keyLabel="d" android:keyBackground="@drawable/key_btn_l"/>
<Key android:codes="102" android:keyLabel="f" android:keyBackground="@drawable/key_btn_a"/>
<Key android:codes="103" android:keyLabel="g" android:keyBackground="@drawable/key_btn_l" android:popupKeyboard="@xml/popup"/>
<Key android:codes="104" android:keyLabel="h" android:keyBackground="@drawable/key_btn_a"/>
<Key android:codes="106" android:keyLabel="j" android:keyBackground="@drawable/key_btn_a"/>
<Key android:codes="107" android:keyLabel="k" android:keyBackground="@drawable/key_btn_a"/>
<Key android:codes="108" android:keyLabel="l" android:keyBackground="@drawable/key_btn_l"/>
<Key android:codes="45" android:keyLabel="-" android:keyEdgeFlags="right" android:keyBackground="@drawable/key_btn_a"/>
</Row>
我对弹出窗口有疑问。
我希望弹出键盘弹出中心。但弹出窗口显示在按键附近。 有什么想法在键盘中心显示弹出窗口吗?
长按键时会显示弹出窗口。 我希望在短按时显示弹出窗口。有什么想法吗?
如果有人知道解决方案,请帮助我。
答案 0 :(得分:0)
默认弹出窗口可自定义,但您可以为键盘创建自己的弹出窗口并自定义所需的全部内容。我认为你可以使用Dialog和PopupWindow来做到这一点,但PopupWindow在这种情况下是最好的。
创建自己的keyboardView,然后你可以使用onLongPress或onTouchEvent之类的方法,如果使用onTouchEvent,你可以计算按下键的时间,然后显示你的popupWindow。
创建popupWindow:
View view = LayoutInflater.from(context)
.inflate(R.layout.popup_layout, new FrameLayout(context));
popup = new PopupWindow(context);
popup.setContentView(view);
popup.setWidth(WindowManager.LayoutParams.WRAP_CONTENT);
popup.setHeight(WindowManager.LayoutParams.WRAP_CONTENT);
popup.showAtLocation(this, Gravity.CENTER, x, y);
为x和y创建变量,并根据触摸位置获取。