2Pascal-新时代的Pascal

 找回密码
 立即注册
搜索
热搜: fastreport
查看: 2409|回复: 8
打印 上一主题 下一主题

新手求教,XE8怎么实现隐藏Android软键盘(输入法)?

[复制链接]

1

主题

1

帖子

7

积分

新手上路

Rank: 1

积分
7
跳转到指定楼层
楼主
发表于 2015-6-16 14:06:32 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
京东数码购物支持本站
如题:XE8怎么实现隐藏Android软键盘?
也就是当切换TEdit焦点时不弹出Android软键盘。
回复

使用道具 举报

90

主题

293

帖子

8万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
83472
推荐
发表于 2015-9-18 14:28:36 | 只看该作者
京东数码购物支持本站
送大家一个 用 代码 显示 和 隐藏的 代码。

var
  VirtualKeyboard: IFMXVirtualKeyboardService;


    if TPlatformServices.Current.SupportsPlatformService(IFMXVirtualKeyboardService,
      IInterface(VirtualKeyboard)) then
    begin
      if not (TVirtualKeyboardState.Visible in VirtualKeyboard.VirtualKeyBoardState) then
      begin        //显示
        VirtualKeyboard.ShowVirtualKeyboard(Edit1);
      end;
    end;



    if TPlatformServices.Current.SupportsPlatformService(IFMXVirtualKeyboardService,
      IInterface(VirtualKeyboard)) then
    begin
      if (TVirtualKeyboardState.Visible in VirtualKeyboard.VirtualKeyBoardState) then
      begin
        //隐藏
        VirtualKeyboard.HideVirtualKeyboard;
      end;
    end;

(C)(P)Flying Wang
回复 支持 1 反对 0

使用道具 举报

90

主题

293

帖子

8万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
83472
8#
发表于 2015-8-15 12:37:13 | 只看该作者
京东购书支持本站
在Edit的OnEnter事件中加入如下代码即可使EDIT在获得焦点时不弹出输入法:
VKAutoShowMode := TVKAutoShowMode.Never;


需引用FMX.Types单元

TVKAutoShowMode有三个属性efinedBySystem, Never, Always

如果需要再次弹出输入法,只需要Edit的OnExit事件中加入如下代码即可
VKAutoShowMode := TVKAutoShowMode.DefinedBySystem;

以上内容来自 [东莞]光头仔(124054867);
(C)(P)Flying Wang
回复 支持 反对

使用道具 举报

90

主题

293

帖子

8万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
83472
7#
发表于 2015-6-18 08:44:41 | 只看该作者
京东数码购物支持本站
或者  VKAutoShowMode := TVKAutoShowMode.Never;
然后 参考 《不看后悔》 修复 安卓 输入法隐藏 后 无法退出的问题 3.4.txt
里头的代码,人工显示虚拟键盘。
(C)(P)Flying Wang
回复 支持 反对

使用道具 举报

3

主题

11

帖子

39

积分

新手上路

Rank: 1

积分
39
6#
发表于 2015-6-16 14:30:57 | 只看该作者
京东数码购物支持本站
wang_80919 发表于 2015-6-16 14:23
难,建议 你滑动开始 EDIT 只读,滑动结束,取消只读。

关键是你在点下去之前就要设置为只读,不好处理.
回复 支持 反对

使用道具 举报

90

主题

293

帖子

8万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
83472
5#
发表于 2015-6-16 14:23:03 | 只看该作者
京东数码购物支持本站
drifer 发表于 2015-6-16 14:21
我是想在我点击的时候弹出来,但在我滑动的时候(碰到了)不弹出来.
这个怎么设置
...

难,建议 你滑动开始 EDIT 只读,滑动结束,取消只读。
(C)(P)Flying Wang
回复 支持 反对

使用道具 举报

3

主题

11

帖子

39

积分

新手上路

Rank: 1

积分
39
地板
发表于 2015-6-16 14:21:10 | 只看该作者
京东数码购物支持本站
我是想在我点击的时候弹出来,但在我滑动的时候(碰到了)不弹出来.
这个怎么设置
回复 支持 反对

使用道具 举报

3

主题

11

帖子

39

积分

新手上路

Rank: 1

积分
39
板凳
发表于 2015-6-16 14:20:03 | 只看该作者
京东数码购物支持本站
wang_80919 发表于 2015-6-16 14:14
1. 如果不想让用户用键盘输入, ReadOnly 设置成 True 就完事大吉了。
2. 如果不想实现软键盘,又想能用键 ...

没看懂,什么叫不想实现又想能用?
回复 支持 反对

使用道具 举报

90

主题

293

帖子

8万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
83472
沙发
发表于 2015-6-16 14:14:06 | 只看该作者
京东数码购物支持本站
1. 如果不想让用户用键盘输入, ReadOnly 设置成 True 就完事大吉了。
2. 如果不想显示软键盘,又想能用键盘输入,可以设置全局变量
  VKAutoShowMode := TVKAutoShowMode.Never;
需要 uses FMX.Types;
(C)(P)Flying Wang
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|新时代Pascal论坛

GMT+8, 2024-11-1 07:35 , Processed in 0.073396 second(s), 25 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表