我正在开发一个安卓应用程序。我想添加一个功能,让用户在运行时更改应用程序的主题。
我尝试在我的主要活动中使用以下语句。
setTheme(android.R.style.Theme_Black);
但是,它只是将对话框更改为带有白色文本的黑色背景。
我该怎么做才能将所有组件的主题更改为黑色,包括操作栏和片段?
我正在开发一个安卓应用程序。我想添加一个功能,让用户在运行时更改应用程序的主题。
我尝试在我的主要活动中使用以下语句。
setTheme(android.R.style.Theme_Black);
但是,它只是将对话框更改为带有白色文本的黑色背景。
我该怎么做才能将所有组件的主题更改为黑色,包括操作栏和片段?
使用Theme_Holo
代替Theme_Black
,请记住,如果您希望所有内容都变黑,则需要创建自己的主题。
对于全局运行时更改,可以扩展Application并设置主题(可能在.onCreate()
setTheme()
ContextWrapper
确保在清单中声明您的 Application 类:
<application
android:name="com.yourpackage.ApplicationClass" >
</application>
但是,由于通常不赞成扩展应用程序,我宁愿根据每个基础设置主题,因为活动比对象Activity
更频繁地被销毁和重新创建。Application
也许制作一个返回当前主题的静态方法SharedPreferences
。
我建议阅读开发者文档http://developer.android.com/guide/topics/ui/themes.html的样式和主题部分
您可以使用以下内容从清单中进行大量主题化:
<activity android:theme="@style/android:Theme.Dark">