gpt4 book ai didi

android - 在运行时以编程方式选择样式/主题

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:06:57 27 4
gpt4 key购买 nike

我有设备 A 和设备 B。

我可以轻松检测应用程序是在设备 A 上运行还是在设备 B 上运行。现在我需要的是在设备 A 和设备 B 上使用主题(样式)。

我该怎么做?

最佳答案

在您的 Activity.onCreate() 中,您可以调用 setTheme() 来设置您想要使用的主题。请注意,这必须在您调用 setContentView() 或以其他方式创建您的 UI 之前完成。

请记住,当用户启动您的应用时,系统会在此期间显示它的预览。前一个是基于创建一个与 list 中声明的​​主题相匹配的窗口。您希望它与您要在 onCreate() 中设置的主题尽可能匹配,以便尽可能顺利地过渡到您的应用。

如果您希望您的主题根据某些设备配置(例如平台版本或屏幕尺寸)而变化,您可以通过资源来实现。只需为您想要的不同配置声明不同版本的主题。文件布局类似于:

values/
styles.xml # Required default theme
values-v11/
styles.xml # Theme when running on Android 3.0 or higher
values-xlarge/
styles.xml # Theme when running on an xlarge screen

-v11 允许您拥有一个主题版本,该版本在较新平台上运行时使用新主题,同时恢复为与旧版本兼容的内容。例如,在 values-v11 样式中,您主题的父级可能是新的 @android:style/Theme.Holo,而基本的则继承自旧的 @android:style/Theme。

Android 3.0 还为您提供了一种在运行时更改主题的方法,方法是在发生配置更改时要求重新启动您的 Activity :http://developer.android.com/reference/android/app/Activity.html#recreate()

调用它之后,创建的 Activity 的新实例可以使用与之前使用的主题不同的值(例如,基于保存的实例状态或共享首选项中的信息)调用 setTheme()。

关于android - 在运行时以编程方式选择样式/主题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6861887/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com