为什么所有对话框都使用" old" Android 2.x风格?

时间:2014-12-27 03:41:41

标签: delphi firemonkey delphi-xe7 appmethod

我目前正在使用RAD Studio XE7,只是想知道为什么我的Android应用中的所有对话框都使用“旧”2.x风格?以及如何强制我的Android应用程序在日期选择器和MessageDlg等所有对话框中使用4.x样式?

使用StyleBook并修改AndroidManifest.xml不起作用。提前谢谢。

1 个答案:

答案 0 :(得分:5)

David我在Embarcadero Community Answers网站上发布了相同问题的答案:

Why all the dialogs are using the "old" Android 2.x style?

  

我提醒了我们的开发团队,他们发现了问题   Android助手功能。以下是R& D的答复   解决方法:

     

修复非常简单:在FMX.Helpers.Android中就是这个功能

function GetNativeTheme: Integer;
var
  LStyleDescriptor: TStyleDescription;
begin
  Result := 0;
  if not IsGingerbreadDevice and (Screen <> nil) and (Screen.ActiveForm <> nil) and (Screen.ActiveForm.StyleBook <> nil) then
  begin
    LStyleDescriptor := TStyleManager.FindStyleDescriptor(Screen.ActiveForm.StyleBook.Style);
    // GetThemeFromDescriptor(LStyleDescriptor);
    Result := GetThemeFromDescriptor(LStyleDescriptor); // <--here the result assignment was missing
  end;
end;

这是一篇Embarcadero博客文章,解释了如何应用修复程序:

How to get Android 4.4.x style for your XE7 dialog boxes

  

在FMX.Helpers.Android.pas单元中,您需要修改GetNativeTheme函数...您将在“C:\ Program Files(x86)\ Embarcadero \ Studio \ 15.0 \”中找到原始源代码单元source \ _ fmx“文件夹。将“FMX.Helpers.Android.pas”源文件复制到项目中并修改该行以设置返回结果。在IDE中将源文件添加到项目中。构建您的应用程序并查看Android KitKat设备上的现代对话框。