我有一个使用另一个库的Android项目。到目前为止,我一直在使用Maven进行Eclipse开发,现在我想迁移到Android Studio和Gradle。
问题是我曾经在Eclipse中执行以下操作:
图书馆项目:
<style name="some_theme">
<item name="android:textColor">#00FF00</item>
</style>
然后在我的主要项目中:
<style name="some_theme">
<item name="android:typeface">monospace</item>
</style>
因此,如果主题名称在Eclipse中相同,那么我会得到两个主题中都定义的内容,但是在Android Studio中,我只会得到主项目中的内容
有人以前遇到过此类问题吗?有人知道解决方法吗? (不只是复制库项目中的所有内容...)
问候
约瑟
最佳答案
那不行当在两个不同的位置定义两个具有相同名称的样式时,您将遇到命名冲突。没有记录的样式资源合并功能。它在带有ADT的Eclipse中工作的事实可能是偶然的。
正确的方法是在库中定义一种样式,并在应用程序中从该样式继承。
例如,在您的图书馆项目中:
<style name="SomeThemeBase">
<item name="android:textColor">#00FF00</item>
</style>
然后在您的应用程序项目中:
<style name="AppTheme" parent="SomeThemeBase">
<item name="android:typeface">monospace</item>
</style>
这样,您就不会产生命名冲突,但是应用程序的主题仍然继承您在基本主题上定义的属性。
关于android - Android Studio多个项目样式问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31541825/