Android实例-处理隐藏输入法后不再显示问题(XE8+小米2)

结果:

1.可以处理再次显示问题,但缺点是每个控件都要处理一次,累。哪位大神有好的处理方法,请M我。

实例代码:

 1 unit Unit1;
 2
 3 interface
 4
 5 uses
 6   System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
 7   FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.ComboEdit,
 8   FMX.Edit, FMX.EditBox, FMX.NumberBox, FMX.DateTimeCtrls, FMX.ScrollBox,
 9   FMX.Memo, FMX.Controls.Presentation, FMX.StdCtrls,
10   FMX.VirtualKeyboard,//需要引入
11   FMX.Platform,//需要引入
12   FMX.Layouts;
13
14 type
15   TForm1 = class(TForm)
16     VertScrollBox1: TVertScrollBox;
17     Layout1: TLayout;
18     Memo1: TMemo;
19     Label1: TLabel;
20     Button1: TButton;
21     Edit1: TEdit;
22     Edit2: TEdit;
23     procedure FormCreate(Sender: TObject);
24     procedure FormFocusChanged(Sender: TObject);
25     procedure FormVirtualKeyboardHidden(Sender: TObject;
26       KeyboardVisible: Boolean; const Bounds: TRect);
27     procedure FormVirtualKeyboardShown(Sender: TObject;
28       KeyboardVisible: Boolean; const Bounds: TRect);
29     procedure Edit2Click(Sender: TObject);
30   private
31     //定义输入法变量
32     FService: IFMXVirtualKeyboardToolbarService;
33     FService_kb: FMX.VirtualKeyboard.IFMXVirtualKeyboardService;
34     { Private declarations }
35   public
36     { Public declarations }
37   end;
38
39 var
40   Form1: TForm1;
41
42 implementation
43
44 {$R *.fmx}
45 {$R *.NmXhdpiPh.fmx ANDROID}
46 //如果再次点击EDIT应做出反映
47 procedure TForm1.Edit2Click(Sender: TObject);
48 begin
49   if TEdit(Sender).IsFocused and Assigned(FService_kb) then
50   try
51     FService_kb.ShowVirtualKeyboard(TEdit(Sender));
52   except
53   end;
54 end;
55
56 procedure TForm1.FormCreate(Sender: TObject);
57 begin
58   //控制虚拟键盘的操作
59   TPlatformServices.Current.SupportsPlatformService(IFMXVirtualKeyboardService,
60   IInterface(FService_kb));
61   if TPlatformServices.Current.SupportsPlatformService
62   (IFMXVirtualKeyboardToolbarService, IInterface(FService))then
63   begin
64     FService.SetToolbarEnabled(true);
65     FService.SetHideKeyboardButtonVisibility(true);
66   end;
67 end;
68
69 end.
时间: 2024-07-31 21:30:30

Android实例-处理隐藏输入法后不再显示问题(XE8+小米2)的相关文章

后悔药来了?发出去的微信图文消息删除后不再显示

之前微信公众平台上群发的图文消息一旦发出去后就不能再改了,假使发送成功后发现有错别字你马上到后台修改了,订阅用户看到的还是那个错别字,即使改了也没用,ytkah就吃过这个亏.现在公众平台貌似有更新了,发出去的微信图文消息你删除后不再显示,提示“该内容已被发布者删除”. 后悔药来了?微信公众平台图文消息群发成功后删除订阅用户看不到内容.修改文字和段落是否成功还没测试,如果哪位公众号运营者已完成过的,欢迎发送截图给我们哈,不胜感激!

[NSUserDefaults]的使用:登陆后不再显示登录界面。

之前搜了好多地方都没找到实现“登陆后不再显示登录界面,而默认自动登录”的方法. 待我发现有种存储方式叫NSUserDefaults的时候,立马又感觉新技能get了. 简介: NSUserDefaults是IOS应用用来存储用户偏好和配置信息的途径,就像是一个数据库,但是它通过键值对(key-value)的方式存储. 比如["Thematrix" forkey:"blogname"] 使用方法: 一共需要3个key,分别是"Didlogin" &q

android启动画面隐藏状态栏全屏显示

1.在根部局给一个id,然后直接设置就行了layout.setSystemUiVisibility(View.INVISIBLE); 状态栏就没有了. 2.如果你只是想改变状态栏颜色的也可以 //5.0以前这样 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT&&Build.VERSION.SDK_INT<Build.VERSION_CODES.LOLLIPOP) { setTranslucentStatus(tru

libvlc播放多路rtsp流,第一路视频跟不上窗口移动,被遮挡后不再显示

http://www.saige.com/shop/list-2036722.htm http://www.saige.com/shop/list-2036729.htm http://www.saige.com/shop/list-2036727.htm http://www.saige.com/shop/list-2036730.htm http://www.saige.com/shop/list-2036742.htm http://www.saige.com/shop/list-2036

Android项目:输入法软键盘显示/隐藏的监听和控制,InputMethodManager用法研究

在项目开发中,用到编辑框的地方经常涉及到要监听或者控制软键盘的显示/隐藏状态.本以为这是很容易解决的一个小问题,没想到当初碰到这个问题才明白还得花点小心思才能整好.现将针对软键盘的显示/隐藏状态的监听/监控方法做一些总结,以备后用. 一.点击空白处隐藏软键盘 这是具有编辑框焦点的页面对输入法软键盘状态监听的一般需求和解决方法. 首先获得InputMethodManager:        InputMethodManager manager = (InputMethodManager) getS

android 显示和隐藏输入法键盘用法介绍

在个别时候,需要强制隐藏Android输入法键盘,如当前键盘正在显示,这个时候点击了侧滑面板,就要强制隐藏输入法键盘.网上常见的方法有: 1.InputMethodManager imm = (InputMethodManager) getActivity() .getSystemService(Context.INPUT_METHOD_SERVICE); imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS); 这个是让输入法状态发

Android强制弹出,隐藏输入法.

当我们弹出一个Dialog时候,假设这个Dialog须要输入数据,然后确定后又须要关闭输入法,一般系统的hide,跟show方法总会有各种问题,最霸道的解决方法就是写一个定时器,定时弹出或者关闭输入法. import java.util.Timer; import java.util.TimerTask; import android.content.Context; import android.view.View; import android.view.inputmethod.InputM

android隐藏输入法隐藏软键盘全解

一些项目中需要隐藏输入法,比如登录页面,登录成功后需要隐藏输入法,还有比如发布某个帖子,或者消息是 发布成功后需要隐藏输入法,再比如一个页面中既有EditText 又有Spinner等控件,当你输入完就去点击 Spinner控件是软键盘是没有被隐藏的,这是是影响用户体验的. 这里我写了一个静态的方法,有需要的可以放在Util包中,需要用的时候直接调用就ok /** * 隐藏输入法面板 * * @param activity */ public static void hideInputMetho

Android隐藏输入法键盘(hideSoftInputFromInputMethod没有效果)

在个别时候,须要强制隐藏Android输入法键盘,如当前键盘正在显示,这个时候点击了側滑面板.就要强制隐藏输入法键盘. 网上常见的方法有: 1. InputMethodManager imm = (InputMethodManager) getActivity() .getSystemService(Context.INPUT_METHOD_SERVICE); imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS); 这个是让输入法状