在运行时更改样式属性



我使用以下样式设置应用程序主题

    <style name="Background1" parent="@android:style/Theme.NoTitleBar.Fullscreen">
        <item name="android:windowBackground">@drawable/bigl_2</item>
        <item name="android:windowNoTitle">true</item>
    </style>

使用这个方法:

setTheme(R.style.background1);

这里我的要求是我想用位图图像改变主题,我如何在运行时做到这一点?

谢谢

你可能想看看同样的问题:android在运行时动态改变样式

在我看来,问题是通用的样式属性可以强制屏幕重新布局,所以没有API可以在运行时改变样式——你需要重新创建屏幕(同样的方法也适用于横向/纵向屏幕方向的改变,其中Activity被重新创建,Android系统架构师的大大脑在onCreate()中发明了savedState来简化(复杂?)这个过程,然后发明了Fragments来简化这个过程)

所以,改变样式通常意味着改变布局。但是你可以在运行时改变主题属性(根据上面的链接-我自己没有尝试过),它会工作,因为它不需要重新布局。

作为一种解决方法,因为您需要为新布局重新创建视图,您可以通过应用不同的主题来简化代码,参见链接

相关内容

  • 没有找到相关文章

最新更新