android keyboard 动态布局 xml,android 软键盘的POPUP布局的问题解决

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持亿速云。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值