Hoal es mi primera vez en el foro, pero tengo algo así:
Código Delphi
[-]
procedure TLoginForm.FormVirtualKeyboardShown(Sender: TObject;
KeyboardVisible: Boolean; const Bounds: TRect);
var
alto_pantalla,alto_teclado,pos_obj,pos_focus : integer;
total_pos : Extended;
control : TCOntrol;
begin
alto_pantalla := Screen.Height;
alto_teclado := Bounds.Height;
control:= LoginForm.GetFocused as TControl;
pos_obj := round(control.Position.Y);
total_pos := round(alto_pantalla - alto_teclado);
pos_focus := pos_obj - alto_teclado;
if pos_obj > total_pos then
begin
Login_contenedor.Align := TAlignLayout.None;
login_contenedor.AnimateFloat('Position.Y',-(pos_focus),0.1,TAnimationType.InOut,TInterpolationType.linear);
end;
end;
No está completo pero seguro funciona; le puedes cacharrear y mejorar. Si logras mejorarlo, lo compartes por fa, es la idea del foro. :P
saludos.