2

我一直在使用自定义,我styles做得很好,但现在我对如何使用完全不同的小styles部件(如CompoundButtons、. 我已经弄清楚了,但是我需要两个完全不同的(例如,在按下状态时使用meal_orange,在按下状态时使用meal_blue ),具体取决于应用程序针对的两个客户中的哪一个。我已经搜索过这个问题,所以要么没有两个单独的应用程序就不可能,要么我没有搜索正确的术语或完全理解(可能两者兼而有之)。SpinnersImageButtonButtonsdrawableThemesImageButtonImageButtonThemethemes

我目前拥有的一个小例子是在我的styles.xml

// these point to separate selector files to show the different states
<style name="MealButton" parent="@android:style/Widget.ImageButton">
    <item name="android:background">@drawable/meal_button</item>
</style>

<style name="CatButton" parent="@android:style/Widget.ImageButton">
    <item name="android:background">@drawable/cat_button</item>
</style>

我最初theme用类似的东西创建了一个自定义

<style name="CustomActivityTheme" parent="@android:style/Theme.Holo.Light">
    <item name="android:actionBarStyle">@style/MyActionBar</item>
</style>

ActionBar部分无关紧要,因为我创建了一个自定义栏,但如果我能做到这一点,并且在这里指示使用上述ImageButton样式示例,那就太好了。

我希望我正确地解释了这一点。有人可以告诉我这是否可能。我无法想象我需要两个不同版本的应用程序,但也许。我以为我可以styles在不同的地方声明这些,themes但我似乎无法为widgets.

只是为了澄清一下,问题是我如何在第二块中使用第一块代码并为两个单独的主题执行此操作?谢谢!

4

1 回答 1

2

不幸的是,这是不可能的。

应用程序样式无法在应用程序范围内以编程方式控制,因此您无法真正设置标志并让它为每个客户端单独工作。

您可能有一个 bash 脚本,或者使用 maven,通过在每个构建的基础上交换 XML 文件来自动构建。

或者,如果您的代码库对于两个客户端完全相同,您可以将其移动到库项目中,并创建两个源自它的项目以具有单独的主题。

于 2013-05-12T06:11:11.803 回答