`
dongya1987
  • 浏览: 47219 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

终于拖动软键盘了,纪念一下

阅读更多

需求是弄一个高度只有一个键的软键盘,能拖动。效果为:




 翻开代码,在input_method.xml里面是这样定义的inputView在键盘中的layout:

<FrameLayout android:id="@android:id/inputArea"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:visibility="gone">
</FrameLayout>

 本想,把这个FrameLayout改成HorizontalScrollView就OK了,结果编译后测试,弹出的软键盘为一块黑色,没有任何键,加上红色背景再调试,效果如下:



 天呢,怎么会这样?!!

开始定位错误的根源(此处省略一万字,搞死我了这个阶段)

定位到这个位置:KeyboardView.java 的setKeyboard(Keyboard keyboard)方法中的

requestLayout();

 这行代码调用后打印this.getWidth()和this.getHeight()都为零,为何???(到现在我也没找到原因,请指点)

  只好自己硬把位置大小写进来:

        mLeft = 0;
        mRight = keyboard.getMinWidth();
        DisplayMetrics dm = getContext().getApplicationContext().getResources().getDisplayMetrics();
        mTop = dm.heightPixels-keyboard.getHeight();
        mBottom = dm.heightPixels;

 再测还不行,再定位,在onMeasure(int widthMeasureSpec, int heightMeasureSpec)方法中

width = MeasureSpec.getSize(widthMeasureSpec);

 被调用后,width又变为了零,哎!!

 还是硬方法,把这行代码注释掉。

再编译运行,OK。花了不少时间做这个,走了不少弯路,发在这儿与大家共勉。

 

  • 大小: 10.3 KB
  • 大小: 6.6 KB
分享到:
评论

相关推荐

    javascript软键盘(虚拟键盘)

    js软键盘,支持中英文切换、大小写、标点符号,可拖动显示位置,支持不同表单元素响应是否显示软键盘,适用于一些触摸屏的网页版页面设计;内附demo示例。

    Java实现软键盘代码,HOOK调用

    本项目"Java实现软键盘代码,HOOK调用"就是一种利用Java技术进行HOOK操作的例子,它主要用于演示和学习目的。 软键盘是一种常见的安全输入方式,尤其是在公共设备或者防止键盘记录器的情况下。这个项目提供了键盘的...

    数字屏幕软键盘

    在IT行业中,数字屏幕软键盘是一种常见的用户界面组件,尤其在移动设备或应用程序中,用于输入数字信息。本文将深入探讨“数字屏幕软键盘”的设计、实现及其相关技术,包括C#和WPF(Windows Presentation Foundation...

    Linux下Qt精心制作软键盘

    在Linux环境下,实现输入框内便捷弹出隐藏、边缘可拖拽、背景透明,科技感极强的软键盘。有详细注释,程序需在mian()函数加上头文件#include"inputMethod/myinputpanelcontext.h" 并在QApplication a(argc, argv);...

    JS版软键盘密码输入器

    4. **事件捕获与处理**:`function grabIt(e){...}` 和 `function moveIt(e){...}`,这两段代码分别处理了鼠标按下和移动事件,通过计算相对位置和更新DOM元素样式,实现了软键盘的拖拽功能,增强了用户体验。...

    触摸除输入框以外的其它区域自动隐藏软键盘

    其中,一个显著的特点是当用户在输入框内输入时,如果触摸屏幕上的其他区域,软键盘会自动收起,这种功能提升了用户在小屏幕设备上操作的便捷性。本文将详细讲解如何实现"触摸除输入框以外的其它区域自动隐藏软键盘...

    系统登录时可以用到得软键盘

    在IT领域,软键盘是一种非常实用的技术,尤其在系统登录或者其他需要输入敏感信息的场景下。软键盘,也称为虚拟键盘,是通过软件界面模拟物理键盘功能,允许用户通过鼠标或触摸屏点击屏幕上的按键来输入字符。在本文...

    WPF 获取光标以及类似QQ软键盘效果!

    在本文中,我们将深入探讨如何在Windows Presentation Foundation (WPF) 中实现获取光标位置以及创建类似QQ软键盘的效果。WPF是微软提供的一种用于构建桌面应用的UI框架,它提供了丰富的图形渲染能力和强大的数据...

    悬浮窗的软键盘程序

    悬浮窗的软键盘程序是一种特殊的输入工具,它能够在屏幕任意位置显示键盘,为用户提供便捷的输入体验。在移动设备上,尤其是大屏设备或者需要多窗口操作时,这样的设计能够帮助用户更高效地进行文字输入,而不受屏幕...

    asp软键盘,安全性强

    同时,JavaScript也可用于实现软键盘的拖动功能,通过监听鼠标事件来改变软键盘的位置。 3. **服务器端脚本(ASP)**:在ASP中,可能需要编写脚本来生成软键盘的HTML代码,或者处理与软键盘相关的业务逻辑,例如...

    Qt软键盘 退格键 英文字符输入

    【Qt软键盘 退格键 英文字符输入】是一个基于Qt框架开发的软件项目,主要功能是提供一个虚拟键盘,允许用户通过鼠标或触摸屏输入英文字符,并且支持退格键操作,方便用户进行文本编辑。这个项目的核心在于利用Qt的...

    易语言画板软键盘源码.zip易语言项目例子源码下载

    在这个“易语言画板软键盘源码.zip”压缩包中,包含了一个易语言项目的源代码,它是关于一个画板软件的实现,同时集成了软键盘功能。这个源码对于学习易语言编程、进行项目实践以及毕业设计都有很大的参考价值,特别...

    Qt5虚拟键盘支持拖动中文拼音,大小修改

    Qt5 Virtual Keyboard(qtvirtualkeyboard)是Qt5提供的一种服务,它允许开发者创建自定义的软键盘,以适应不同设备和应用场景的需求。这个模块包含了一系列的类和接口,用于构建和配置虚拟键盘的布局、样式和行为。...

    pyqt实现虚拟小键盘

    7. **事件处理**: 需要考虑各种用户交互,如多按键同时按下、拖拽选择等,根据需求实现相应的逻辑。 8. **可配置性**: 为了适应不同场景,虚拟键盘可能需要提供一些可配置选项,如是否显示数字键、是否开启大写等。...

    iOS让软键盘消失的简单方法

    一些文本输入控件等待输入时会弹出软键盘,我们可以设置这些控件的Did End On Exit之类的回调方法以在用户点击软键盘上的done或return之列的按键时收起键盘. 不过某些时候有些键盘没有上述的按键,或者我们希望点击App...

    总结IOS中隐藏软键盘的三种方式

    在iOS开发中,隐藏软键盘是一项常见的需求,特别是在用户与屏幕上的文本字段交互时。本文主要介绍了三种在iOS中关闭软键盘的方法,适用于各种场景。 1. 使用软键盘的"Done"键隐藏键盘: 当用户点击软键盘上的"Done...

    用鼠标拖动或键盘移动窗口内的组件

    标题“用鼠标拖动或键盘移动窗口内的组件”涉及到的是用户如何通过交互手段调整这些组件在窗口中的位置。这种功能使得用户可以根据个人习惯或者工作需求自由地排列和组织窗口内部元素,提高工作效率。 首先,我们来...

    最好用的虚拟键盘

    标题中的“最好用的虚拟键盘”指的是一个专为触摸屏设备设计的键盘软件,它可以提供高度自定义的体验,让用户可以根据自己的需求调整键盘的格式、大小、样式和颜色。这样的虚拟键盘在餐饮、零售和会员管理软件中尤其...

    QML编写的虚拟键盘

    用户可以按住虚拟键盘上的某个字符,拖动选择需要删除的部分,然后按下删除键完成操作。这种功能增强了虚拟键盘的实用性,使其在处理复杂文本编辑任务时也能胜任。 在QML中实现这些功能,开发者可以利用其强大的...

    绘制可以拖动的EditText

    该例子主要是介绍了自定义继承自EditText的类,实现了拖动效果,其中较为重要的步骤还是解决了,拖动时隐藏软键盘,点击时弹起软键盘,由于EditText控件的原因要解决该问题还是需要花点时间的,本人通过一上午的时间...

Global site tag (gtag.js) - Google Analytics