android虚拟按键 判断,如何检测虚拟键盘事件中的Android用Delphi
我不得不用键盘在tmemo同样的问题,尝试这两个函数和事件OnVirtualKeyboardShown和OnVirtualKeyboardHidden
public
{ Public declarations }
FSavedY: Single;
FocusControl: TControl;
ParentedControl: TFMXObject;
function FocusedControl: TControl;
function GetFocusedControlOffset(KeyboardRect: TRect): Single;
...
function TfrmFeedBackMobile.FocusedControl: TControl;
begin
Result := nil;
if Assigned(Focused) and (Focused.GetObject is TControl) then
Result := TControl(Focused.GetObject);
end;
function TfrmFeedBackMobile.GetFocusedControlOffset(KeyboardRect: TRect): Single;
var
Control: TControl;
ControlPos: TPointF;
KeyboardTop: Single;
begin
Result := 0;
KeyboardTop := Height - (KeyboardRect.Bottom - KeyboardRect.Top) - 66;
// At least, should be. 66 is the height of the keyboard "done" bar
Control := FocusedControl;
if Assigned(Control) then
begin
ControlPos := Control.LocalToAbsolute(PointF(0, 0));
Result := KeyboardTop - ControlPos.Y + Control.Height + 2;
if Result >= 0 then
Result := 0;
end;
end;
procedure TfrmFeedbackMobile.FormVirtualKeyboardHidden(Sender: TObject;
KeyboardVisible: Boolean; const Bounds: TRect);
begin
FocusControl.Parent:= ParentedControl;
FocusControl.AnimateFloat('Position.Y', FSavedY, 0.1);
FocusControl.Align := TAlignLayout.alClient;
FocusControl:= nil;
end;
procedure TfrmFeedbackMobile.FormVirtualKeyboardShown(Sender: TObject;
KeyboardVisible: Boolean; const Bounds: TRect);
begin
FocusControl:= FocusedControl;
if not (FocusControl is TMemo) then Exit;
FocusControl.Align := TAlignLayout.alNone;
FSavedY := FocusControl.Position.Y;
FocusControl.Position.Y:= 0;
FocusControl.AnimateFloat('Position.Y',
FSavedY + GetFocusedControlOffset(Bounds), 0.1);
ParentedControl:= FocusControl.Parent;
FocusControl.Parent:= frmFeedbackMobile;
FocusControl.BringToFront;
end;
android虚拟按键 判断,如何检测虚拟键盘事件中的Android用Delphi相关推荐
- Android适配页面底部虚拟按键,解决与软键盘冲突,AndroidBug5497Workaround
想全面了解解决方案不妨看下这两篇文章: https://blog.csdn.net/smileiam/article/details/69055963 https://blog.csdn.net/we ...
- 安卓平板隐藏虚拟按键_Android 4.0 虚拟按键、手机模式、平板模式
关键词:android 4.0 手机模式(phone) 平板模式(table) 虚拟按键 lcd_density 平台信息: 内核:linux2.6/linux3.0 系统:android/andro ...
- vbs脚本在服务器上虚拟按键,iisvdir.vbs iis虚拟目录管理脚本使用介绍
IIS管理器也是通过调用iisvdir.vbs来实现虚拟目录的创建和删除的.我们可以通过命令行的方式来执行iisvdir.vbs脚本 1)创建虚拟目录: cscript c:\windows\syst ...
- android禁止输入框自动弹出软键盘,怎么禁用输入法-Android禁止EditText输入框自动弹出软键盘的4种方法...
用户UI如果有EDITTEXT,经常会自己获得焦点弹出来,如果不需要输入法键盘,就需要禁止弹出.经常使用,现在总结如下: 1.父控件设置属性不弹出 EditText有一个 android:focusa ...
- html5触摸事件判断滑动方向,H5触摸事件中如何判断用户滑动方向
这次给大家带来H5触摸事件中如何判断用户滑动方向,H5触摸事件中判断用户滑动方向的注意事项有哪些,下面就是实战案例,一起来看一下. 接口 TouchEvent TouchEvent 是一类描述手指在触 ...
- js键盘事件中的键码对照表
JS中的键盘事件经常用到,收集了键盘事件对应的键码来分享下: keyCode 对应按键 8 BackSpace BackSpace 9 Tab Tab 12 Clear 13 Enter 16 S ...
- android java 最新判断手机号码 包含虚拟号
/*** 验证手机号是否合法* @return*/public static boolean isMobileNO(String mobile){if (mobile.length() != 11){ ...
- android 关闭按键灯,安卓永久关闭键盘灯的方法
安卓永久关闭键盘灯的方法 用RE管理器进入到/system 1.在system里新建文件,文件名为"关灯.sh" ,注意,后缀一定为 .sh 2.输入下面的代码 chmod 666 ...
- wpf中键盘事件中KeyPressEventArgs.Handled 的用法(解决键盘事件默认操作)
KeyPressEventArgs.Handled 属性 (键盘的默认操作就是改变焦点,键盘方法需要为控件设置焦点) 获取或设置一个值,该值指示是否处理过 KeyPress 事件. 属性值类型:Sys ...
最新文章
- Go 知识点(11) — goroutine 泄露、设置子协程退出条件
- linux删除过期文件
- android studio 插件版本号和gradle版本号对应关系
- java如何理解继承性_理解 Java 的三大特性之继承
- 贫穷中透着零基础的单人制作游戏手册之一:怎么开局
- 【招聘(广州)】-年薪30W起-自助打印领域业内第一
- 优化自定义函数_Pandas常见的性能优化方法
- Mono for Android 篇二 使用Spinner 实现下拉列表读取Browser.BookmarksUri
- 昨天飞鸽传书可能是因为太累了
- vim 设置标签等操作
- CNN手把手维修攻略:你的网络不好好训练,需要全面体检
- 从上千篇投稿脱颖而出,这5篇大数据论文凭什么征服KDD评委?
- Element ui tree树形控件获取当前节点id和父节点id
- Matlab DIP(瓦)ch5图像复原练习
- sourceTree 添加 ssh key 方法
- UNIX时间戳和北京时间的相互转换
- 基于色彩直方图匹配的颜色传递算法
- [NOIP2013 提高组] 火柴排队
- SDF!这特效牛不牛?
- 黑客可入侵自动洗车系统暴力攻击驾驶人
热门文章
- 乐教乐学各关的解(3-10)
- Python获取所有股票代码以及股票历史成交数据分析
- sketch首款主题管理插件-主题大师
- anaconda安装配置步骤、报错解决
- Protobuf 介绍与实战30:google/protbuf/any.proto, api.proto, descriptor.proto,empty.proto 在什么位置
- 如何比较两个数组/对象或数组对象是否相等
- jQuery简单实线钟表并随机钟表数字颜色
- 2、SpringBoot2组件添加注解与自动配置原理
- ant man 什么意思_ant是什么意思中文翻译
- C语言笔试题(嵌入式软件开发)