【问题标题】:firemonkey android transparency form become visible after app send to background and reactive应用程序发送到后台并反应后,firemonkey android透明度表单变得可见
【发布时间】:2023-12-30 07:27:01
【问题描述】:

delphi xe8 或 xe10 或西雅图的 firemonkey android 项目,有两种形式。 一个是Form1:

procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word; var KeyChar: Char;
  Shift: TShiftState);
var
  Fservice: IFMXVirtualKeyboardService;
begin
  if Key = vkHardwareBack then
  begin
    Key := 0;
    Form2.Show;
  end;
end;  

其他是Form2:

1. set Transparency=true;
2. put a layout1 on form, set Align=Contents, set Opacity=0.5
3. put a rectangle in layout1, set Align=Client, set fill color to black
4. put an other rectangle in form, set fill color to white

现在,我在 nexus 4 上运行它,我按下返回按钮,form2 显示,再次按下返回按钮,现在 form2 消失了。

现在我按主页按钮,将应用程序发送到后台,然后将其发送回来,按返回按钮,但 form2 不显示。或者,当 form2 显示时,将应用程序发送到后台并发送回来,form2 消失。为什么?

谢谢。

【问题讨论】:

  • 如果设置form2.transparency=false,则form2显示正常。

标签: android delphi firemonkey


【解决方案1】:

当您在 form2 上按回时,您正在调用 android 上的 sendtobackground 状态 ..

您还应该在 form2 上再次处理 hardwarebackkey .. 让我们说它再次显示 form1

 if Key = vkHardwareBack then
  begin
    Key := 0;
    Form1.Show;
    close;  //to close form2
  end;

【讨论】:

    最近更新 更多