Manter o foco no controle em edição acima do teclado virtual
23/01/2015
0
Estou criando um app Android utilizando Delphi XE5,
Quando o teclado virtual aparece por padrão ele cobre a caixa que está sendo editado, se for abaixo da metade inferior da tela.
Como faço para rolar o formulário para que o campo que está sendo editado permaneça visível?
Obrigado
Adiel França
Post mais votado
11/02/2015
procedure TFPrincipal.FormVirtualKeyboardHidden(Sender: TObject; KeyboardVisible: Boolean; const Bounds: TRect); begin FTecladoShow := false; if not KeyboardVisible then AnimateFloat('Padding.Top', 0, 0.1); end;
procedure TFPrincipal.FormVirtualKeyboardShown(Sender: TObject; KeyboardVisible: Boolean; const Bounds: TRect); var O: TFMXObject; begin FTecladoShow := true; if Assigned(Focused) and (Focused.GetObject is TControl) then if TControl(Focused).AbsoluteRect.Bottom - Padding.Top >= (Bounds.Top - DoneBarHeight) then begin //If switching between controls, the KeyboardHidden animation will run first //and we'll see the form scroll up and then down. //Calling StopPropertyAnimation jumps the first animation to it's final value - same problem //Instead we need to search for the other animation and call StopAtCurrent. for O in Children do if (O is TFloatAnimation) and (TFloatAnimation(O).PropertyName = 'Padding.Top') then TFloatAnimation(O).StopAtCurrent; AnimateFloat('Padding.Top',Bounds.Top - DoneBarHeight - TControl(Focused).AbsoluteRect.Bottom + Padding.Top, 0.1) end else else AnimateFloat('Padding.Top', 0, 0.1); end;
Lucas Ramos
Mais Posts
10/02/2015
Prime Ltda
Grato!
11/02/2015
Prime Ltda
Fiz a implementação aqui e acontece o seguinte...
na primeira procedure está dando um erro na linha:
FTecladoShow := false;
11/02/2015
Lucas Ramos
Essa é uma variável global declara no seu form ou remova a atribuição se for declarar ela é do tipo Boolean.
23/06/2015
Mauricio Abreu
Estamos com querendo que um Edit no Android receba apenas numeros e vírgula (,) ou ponto (.) , já setamos no xe7 a propriedade Keyboardtype para NumbersandPunctuation e o mesmo vem com todos os caracteres.
Sabe como fazer isso?
21/04/2016
Williamdiego2
11/05/2016
Felipe Santos
Muito obrigado, funcionou maravilhosamente.
Apenas tive que adicionar no Uses FMX.Ani que não estava explicado.
Também declarei a Variavel FTecladoShow como Boolean, apesar de que não estou usando ela em outros momentos, pois consigo capturar este status através dos metodos em FMX.VirtualKeyboard.IFMXVirtualKeyboardService (ex.: GetVirtualKeyboardState).
Outra alteração que precisei realizar foi trocar DoneBarHeight pelo Height do meu Toolbar (ex.: Tb_topo.Height ).
Enfim, muito obrigado e espero que as informações ajudem os demais.
PS: Usado no XE8.
12/05/2016
Esquilo Tranquilo
Muito obrigado, funcionou maravilhosamente.
Apenas tive que adicionar no Uses FMX.Ani que não estava explicado.
Também declarei a Variavel FTecladoShow como Boolean, apesar de que não estou usando ela em outros momentos, pois consigo capturar este status através dos metodos em FMX.VirtualKeyboard.IFMXVirtualKeyboardService (ex.: GetVirtualKeyboardState).
Outra alteração que precisei realizar foi trocar DoneBarHeight pelo Height do meu Toolbar (ex.: Tb_topo.Height ).
Enfim, muito obrigado e espero que as informações ajudem os demais.
PS: Usado no XE8.
Boa tarde camaradas,
Muito obrigado pelo post de todos, me ajudaram muito.
Mas Felipe, que estrutura vc está usando? É que no meu projeto ele está tipo assim dando uma esticada forte nos Edits e não ficou 100%
Eu estou utilizando um VertScrollBox (AlClient), dentro dele um Layout (AlClient) e dentro deste um Scaledlayout (AlClient), com essa configuração o sistema redimensiona a tela para outros tamanhos e tals.
Porém como comentei, não fica bom o esquema de subir o edit para que o teclado virtual não sobreponha o campo e eu n veja oq estou digitando.
Por favor, peço sua ajuda e dos demais.
obrigado.
Att,
31/08/2016
Experidiao Santos
Quem tiver outras versões, talvez mude um pouco o caminho.
até mais
11/11/2016
Adiel França
http://www.rodrigomourao.com.br/tvertscrollbox-aprenda-a-evitar-que-o-teclado-virtual-encubra-seus-controles/
13/04/2017
Marcos Mendes
13/04/2017
Marcos Mendes
Inclusive o próprio exemplo da Embarcadeiro que foi o que eu utilizei como base tem o mesmo problema, o scroll nao funciona com o componente do teclado virtual ativo
Clique aqui para fazer login e interagir na Comunidade :)