【问题标题】:What's the most efficient way to change the overall theme of the app?更改应用程序整体主题的最有效方法是什么?
【发布时间】:2019-07-17 19:23:09
【问题描述】:

所以我想到了一个应用程序,它可以根据用户的选择改变视觉主题,就像 Sub-Reddit 如何让用户在主题之间切换一样。在这种情况下,我会使用至少 4 个主题,每个主题都会改变某些视图的颜色,例如背景、按钮、图像等。我想知道最好的方法。我需要保留一份可能会受到影响的视图列表吗?

我尝试使用不同颜色保留不同的按钮背景,因为以编程方式设置背景颜色会将背景形状重置为默认设计,但我担心它会导致应用程序因大量文件而臃肿。我已经尝试使用颜色过滤器来更改视图。

颜色 id 仍然保持应用过滤器,如果用户切换到不同的颜色,然后再返回,它会导致它无法使用。

【问题讨论】:

  • 他们发明了CSS就是为了这个。
  • 事实上,我很确定 subreddits 也使用 CSS 来切换他们的主题。所以正是你在说什么。
  • 类似的东西,是的,但据我所知,原生 Android 应用还没有 CSS 支持。这是用于更改 android 应用程序中的视图,而不是 web 视图。

标签: java android image view android-button


【解决方案1】:

希望这个问题是针对原生开发的。如果是这样,那么你应该看看guidelines。您可以在 XML 中创建主题并在布局 XML 文件中引用它们。

就个人而言,我会将主题存储为 SharePreference 某处,然后在布置每个 Activity/Fragment 时,利用用户保存的主题。

【讨论】:

  • 我沿着应用程序的线路更多的思考有一个区域,其中有一个主题列表的区域,并且只要采摘新主题,某些部分,例如按钮和切换按钮在不影响用户体验的情况下改变颜色。我正在使用单一活动架构,一些片段具有用于用户输入的表单,我不希望用户在他们已经输入的数据上失去进度。我的问题是什么是更改需要的视图的最佳方法以反映所选主题,无论何时选择新主题。
  • 是的,我明白你在说什么,但我的回答仍然有效。我假设你有一个他们可以选择的主题列表?如果是这样,这些主题应该来自 XML。他们的主题偏好可以在整个应用程序中存储和使用。您使用片段的事实并不重要。重要的是将您在样式中定义的任何主题应用到您的视图、片段和活动中。请阅读本文以了解我所说的示例:medium.com/mindorks/…
猜你喜欢
  • 2011-01-04
  • 1970-01-01
  • 1970-01-01
  • 2011-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多