【问题标题】:change style attribute at runtime在运行时更改样式属性
【发布时间】:2013-05-30 10:43:52
【问题描述】:

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

    <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 bitmap styles themes


【解决方案1】:

你可能想看看同样的问题:android dynamically change style at runtime

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-25
    相关资源
    最近更新 更多