DelphiでAndroidアプリを開発しております。
問題現象の手順を行うとバーチャルキーボードの
ShownおよびHideイベントが正しく発生しません。
TMemoのControlTypeをPlatFormまたはStyledの何れに変更しても同じです。
原因は分かりますでしょうか?Delphi10でも同じ現象でした。
ちなみにiOSのほうは全く問題がありませんでした。
補足)
手順②のログが消える症状は何か別の不具合に思います。
イベントの問題が解消されることを優先したいため、
今回は無視していただいてかまいません。
【バージョン】
RAD Studio 11 Alexandria
Embarcadero® Delphi 11.0 バージョン 28.0.42600.6491
<問題現象の手順>
①メモをタップし、バーチャルキーボードを表示する
・Shownイベントは発生する。
・メモに正しくログが追記される。
②バーチャルキーボードを閉じる。
・Hideイベントは発生しない。
・メモにログが入力されず、①のログが消える。
③メモをタップし、バーチャルキーボードを表示する
・Shownイベントは発生しない。
・メモにログも入力されない。
④バーチャルキーボードを閉じる
・Hideイベントは発生する。
・メモに正しくログが追記される。
以降、繰り返し同じ現象。
<サンプルソース>
unit Unit1;
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Memo.Types,
FMX.Controls.Presentation, FMX.ScrollBox, FMX.Memo, FMX.Objects, FMX.Layouts,
FMX.StdCtrls;
type
TForm1 = class(TForm)
Memo1: TMemo;
procedure FormVirtualKeyboardHidden(Sender: TObject;
KeyboardVisible: Boolean; const Bounds: TRect);
procedure FormVirtualKeyboardShown(Sender: TObject;
KeyboardVisible: Boolean; const Bounds: TRect);
private
{ private 宣言 }
public
{ public 宣言 }
end;
var
Form1: TForm1;
implementation
{$R *.fmx}
procedure TForm1.FormVirtualKeyboardHidden(Sender: TObject;
KeyboardVisible: Boolean; const Bounds: TRect);
begin
Memo1.Lines.Add('FormVirtualKeyboardHidden');
end;
procedure TForm1.FormVirtualKeyboardShown(Sender: TObject;
KeyboardVisible: Boolean; const Bounds: TRect);
begin
Memo1.Lines.Add('FormVirtualKeyboardShown');
end;
end.
開発検証用のタブレット特有の問題かもしれません。
比較的新しいAndroidスマホ(oppo reno5 a、Android11)では
正しくShownおよびHiddenイベントが発生しました。
本件CLOSEにしたいと思います。
<問題のタブレット機種>
モデル名: NEC PC-TE410JAW
Androidバージョン: 9
※本タブレットはこれ以上バージョンをあげれませんでした。
追記です。
富士ソフト株式会社の「FSKAREN」という日本語入力システム(IME)が問題だったようです。
Googleの「Gboard」に変更したら、問題は起きませんでした。
ツイート | ![]() |