android 软键盘的POPUP布局的问题解决
发布时间:2020-08-30 18:11:54
来源:脚本之家
阅读:122
作者:代码日志
我正在开发一个软键盘,做得很好,但是我不知道如何自定义一个长按键的弹出窗口.
我的键盘视图:
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/keyboard"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:keyPreviewLayout="@layout/preview"
android:keyBackground="@drawable/key_selector"
android:shadowRadius="0.0"
android:keyTextColor="#000000"
/>
我的键盘布局:
android:keyWidth="10%p"
android:keyHeight="10%p">
/>
android:popupKeyboard="@xml/keyboard_popup" android:popupCharacters="yýÿ"/>
android:popupKeyboard="@xml/keyboard_popup" android:popupCharacters="uúùũûü"/>
android:popupKeyboard="@xml/keyboard_popup" android:popupCharacters="iíìĩîï"/>
android:popupKeyboard="@xml/keyboard_popup" android:popupCharacters="oóò ôö" />
android:popupKeyboard="@xml/keyboard_popup" android:popupCharacters="aáà âä"/>
android:keyHeight="7.6%p" android:keyWidth="13.7%p"/>
android:popupKeyboard="@xml/keyboard_popup" android:popupCharacters="cç"/>
android:popupKeyboard="@xml/keyboard_popup" android:popupCharacters="nñ"/>
android:keyHeight="7.6%p" android:keyWidth="13.7%p"
android:horizontalGap="1%p"/>
android:keyHeight="7.6%p" android:keyWidth="18.7%p"/>
android:keyHeight="7.6%p" android:keyWidth="18.5%p" android:horizontalGap="1%p"/>
键盘弹出XML:
android:keyWidth="10%p"
android:keyHeight="10%p">
我尝试将keyBackground和背景属性放在任何地方,但不成功.我试图把:
android:popupLayout="@layout/keyboard"
…在keyboardView上得到nullpointer,也许我在该参数中输入了错误的XML?
在我放在这里的键盘弹出式XML中:
android:popupKeyboard="@xml/keyboard_popup"
我可以改变布局的大小,按键大小,键间距等等,但不能改变颜色或背景.
关键预览也做得很好,我把它放在keyboardView上:
android:keyPreviewLayout="@layout/preview"
…它的工作原理我认为弹出窗口应该是一样的,但不是这样.
如何自定义出现长按键的弹出式窗口?
那么这不是我正在寻找的,而是解决了这个问题.
我自己创建了键盘视图,并弹出一个弹出窗口来显示一个键长时间按下.
public class MyKeyboardView extends KeyboardView{
@Override
protected boolean onLongPress(final Key popupKey) {
final View custom = LayoutInflater.from(context)
.inflate(R.layout.popup_layout, new FrameLayout(context));
popup = new PopupWindow(context);
popup.setWidth(WindowManager.LayoutParams.WRAP_CONTENT);
popup.setHeight(WindowManager.LayoutParams.WRAP_CONTENT);
popup.showAtLocation(this, Gravity.NO_GRAVITY, popupKey.x, popupKey.y-50);
}
}
这样,您可以在xml中以任何方式自定义弹出窗口.
但是这不是正确的答案,如果你知道一个更好的方法来回答这个问题.
http://stackoverflow.com/questions/34799775/soft-keyboards-popup-layout
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持亿速云。