我一直在使用自定义样式
并且做得很好,但现在我对如何为CompoundButtons等小部件使用完全不同的
、样式
感到困惑Spinners
、ImageButton
等。我为每种类型制作了自定义 Button
,并且每个都有自己的 可绘制
取决于其状态。我已经弄清楚了,但我需要两个完全不同的主题
(例如,在按下状态时使用meal_orange ImageButton
,并使用meal_blue作为ImageButton
状态按下我的其他主题
),具体取决于该应用程序适用于两个客户中的哪一个。我已经搜索过这个问题,所以要么没有两个单独的应用程序就不可能解决这个问题,要么我没有搜索正确的术语或完全理解主题
(可能两者兼而有之)。
我当前拥有的一个小示例位于我的 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>
我最初创建了一个自定义主题
,类似于
<style name="CustomActivityTheme" parent="@android:style/Theme.Holo.Light">
<item name="android:actionBarStyle">@style/MyActionBar</item>
</style>
ActionBar
部分是无关紧要的,因为我创建了一个自定义栏,但如果我可以做到这一点,并且在此处指示使用上面的 ImageButton
样式示例,那么这将很棒。
我希望我的解释是正确的。有人可以告诉我这是否可能。我无法想象我需要该应用程序的两个单独版本,但也许吧。我以为我可以在不同的主题
中声明这些样式
,但我似乎无法为小部件
做到这一点。
为了澄清,问题是我如何在第二 block 代码中使用第一 block 代码并为两个单独的主题执行此操作?谢谢!
最佳答案
不幸的是,这是不可能的。
应用程序样式无法在应用程序范围内以编程方式进行控制,因此您无法真正设置标志并让它为每个客户端单独工作。
您也许可以使用 bash 脚本或使用 maven,通过在每次构建的基础上交换 XML 文件来自动化构建。
或者,如果两个客户端的代码库完全相同,您可以将其移至库项目中,并创建两个源自该项目的项目以具有单独的主题。
关于android - 在应用程序中创建两个单独的主题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16489657/