我目前正在使用RAD Studio XE7,只是想知道为什么我的Android应用中的所有对话框都使用“旧”2.x风格?以及如何强制我的Android应用程序在日期选择器和MessageDlg等所有对话框中使用4.x样式?
使用StyleBook并修改AndroidManifest.xml不起作用。提前谢谢。
答案 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设备上的现代对话框。