android 多模块项目中的样式
android styles in a multi module project
我注意到在我们的 ide 模块项目 (com.android.library) 中,如果我们在我们的设备上执行应用程序,我们可以看到应用了样式,但看不到它们在布局编辑器中。
这就是我的包结构的样子
app (com.android.application)
-res
--values
---styles.xml
module (com.android.library)
-res
--layouts
---module.xml.
在我的 module.xml 布局中,如果我尝试访问我的应用程序模块中提到的样式,它会在布局编辑器中显示为错误
不过它确实可以正确编译,我什至可以看到设备上应用的样式,但是如果我无法看到布局编辑器中应用的样式,那就太麻烦了。
您的 'module' 模块不依赖于 'app' 模块(定义颜色的地方),因此它不可见。为了正确地做到这一点,你应该创建另一个具有共享样式的模块,并使 'module' 和 'app' 都依赖于这个共享模块。
您还可以在 'module' 模块中定义属性,并在您的主题中为那些将在 'app' 中定义的属性定义值。
有为 colorPrimary 定义的属性?android:colorPrimary
你可以在你的模块中引用这个属性,并希望它在你的应用程序主题中设置。
我注意到在我们的 ide 模块项目 (com.android.library) 中,如果我们在我们的设备上执行应用程序,我们可以看到应用了样式,但看不到它们在布局编辑器中。
这就是我的包结构的样子
app (com.android.application)
-res
--values
---styles.xml
module (com.android.library)
-res
--layouts
---module.xml.
在我的 module.xml 布局中,如果我尝试访问我的应用程序模块中提到的样式,它会在布局编辑器中显示为错误
不过它确实可以正确编译,我什至可以看到设备上应用的样式,但是如果我无法看到布局编辑器中应用的样式,那就太麻烦了。
您的 'module' 模块不依赖于 'app' 模块(定义颜色的地方),因此它不可见。为了正确地做到这一点,你应该创建另一个具有共享样式的模块,并使 'module' 和 'app' 都依赖于这个共享模块。
您还可以在 'module' 模块中定义属性,并在您的主题中为那些将在 'app' 中定义的属性定义值。
有为 colorPrimary 定义的属性?android:colorPrimary
你可以在你的模块中引用这个属性,并希望它在你的应用程序主题中设置。