Delphi Firemonkey DX Seattle TTabControl在TVertScrollBox内部无法正确重新打印

时间:2015-09-23 01:49:05

标签: delphi tabs firemonkey tabcontrol delphi-10-seattle

这适用于Delphi XE8

这是一个示例项目 https://github.com/dangas56/DelphiDXSeattle-BrokenTabControl

当键盘弹出设备时,我们有一个VertScrollBox 并有多个标签控件和标签项在屏幕之间轻弹 注意到标签有时在Delphi DX Seattle中无法正确打印

这是重现代码的示例 - 您可以从上面的git链接下载示例

procedure TForm2.tbcMainChange(Sender: TObject);
begin
  if tbcMain.ActiveTab = tbtmSettings then
    tbcMain.TabPosition := TTabPosition.None
  else begin
    tbcMain.TabPosition := TTabPosition.Bottom;
  end;
end;

procedure TForm2.Button1Click(Sender: TObject);
begin
  tbcMain.ActiveTab := tbtmHome;
end;

这是主屏幕的示例,单击第二个选项卡将原始tabControl上的TabPosition设置为none(以隐藏选项卡)。
enter image description here

这是第二个标签 - 通常底部有更多标签项 当我们点击按钮返回原始标签时,将原始标签的Tabposition设置为底部,并将活动项目设置为第一个标签项

enter image description here

如下所示,它没有重新打印屏幕底部的标签项

enter image description here

1 个答案:

答案 0 :(得分:0)

我们找到了临时修复 而不是仅仅将tabPosition设置为从无到底,例如

tbcMain.TabPosition := TTabPosition.Bottom;<br>

如果你这样做,它似乎再次重印

tbcMain.TabPosition := TTabPosition.Bottom;
tbcMain.TabPosition := TTabPosition.Dots;
tbcMain.TabPosition := TTabPosition.Bottom;