如何在 Android 应用程序中使用供应商主题

Posted

技术标签:

【中文标题】如何在 Android 应用程序中使用供应商主题【英文标题】:How to use vendor theme in Android application 【发布时间】:2011-06-30 13:45:37 【问题描述】:

我正在为 android 开发“Hello, World”应用程序,但遇到了一些让我烦恼的事情。

用于我的应用程序AlertDialog 的主题与设备上显示的其他此类对话框所使用的主题不同。该设备是我更改了主题的 HTC Desire HD,但我期待标准 UI 元素(如AlertDialog)会以某种方式反映设备主题。这是我遗漏的东西,或者可能是某些供应商/型号的已知问题?

这是我的代码:

final AlertDialog.Builder confirm = new AlertDialog.Builder(this);
confirm.setTitle("Delete")
       .setMessage("Really Delete?")
       .setPositiveButton("Delete", new DialogInterface.OnClickListener() 
           @Override
           public void onClick(DialogInterface dialog, int which) 
               // ...
           
       )
       .setNegativeButton("Cancel", null)
       .show();

下面是对话框在不同情况下的样子:

设备的AlertDialog 带有默认主题(消息应用)

设备的AlertDialog 更改了主题(消息应用)

我的应用程序的AlertDialog(带有默认主题和更改主题)

谢谢。

【问题讨论】:

在玩了这个设备几个小时后,我可以说 HTC 可能使用了一些自定义组件并且没有费心重新设计 Android 的组件。有一些内置应用程序(Google 应用程序)似乎与我自己的应用程序存在相同的问题。 【参考方案1】:

你的假设是正确的。 HTC 最喜欢为 HTC 应用程序创建自定义对话框。

【讨论】:

以上是关于如何在 Android 应用程序中使用供应商主题的主要内容,如果未能解决你的问题,请参考以下文章

如何在 react-native 应用程序中更改 android 的键盘主题?

如何从android中的另一个应用程序资源更改主题?

如何在 XML 中获取(参考)当前主题默认文本颜色

安卓 Activity主题theme设置

如何使用 Webpack 拆分应用程序和供应商代码

如何在 Android 中更改 SettingsActivity 的主题?