我需要构建自己的AccountHeaderBuilder实现。
所以我正在尝试从MaterialDrawer库扩展一个类。
在Android Studio中,我该如何进行操作?
是否应将MaterialDrawer库作为模块导入?
如果是,为什么会出现如下错误:
Error:(1290) Error retrieving parent for item: No resource found that matches the given name 'MaterialTheme'.
当我将项目导入为模块时...
即使我的gradle设置为:
compileSdkVersion 23
minSdkVersion 15
targetSdkVersion 23
我扩展AccountHeaderBuilder的类必须位于同一程序包中...因此,我的理解是,我不能仅在gradle文件中使用它。
compile('com.mikepenz:materialdrawer:5.0.9@aar')
所以,用一句话:我该如何继续扩展另一个项目的类?
非常感谢您的帮助
ps:我已经能够集成该库并使它在我的项目中工作,但是现在我需要额外的功能。
最佳答案
发生异常是因为缺少必需的依赖项。 MaterialDrawer依赖于提供必需的帮助程序类的Materialize和FastAdapter库。
MaterialDrawer的文档指出要添加transitive=true
,这将自动解决MaterialDrawer
的子依赖项
因此,将您的编译语句替换为:
compile('com.mikepenz:materialdrawer:5.1.4@aar') {
transitive = true
}
根据评论中提到的要求。
也可以覆盖用于
AccountHeader
https://github.com/mikepenz/MaterialDrawer/blob/develop/library/src/main/res/layout/material_drawer_header.xml的布局您可以将布局更改为所需的任何内容,只需记住需要保持相同的
id
,并且不能删除配置文件之类的现有视图,而是可以对其进行更改,因此ImageView
在版面内,并将其设置为gone
。因此,配置文件将不再可见。对于其他行。您可以将其添加到包含现有两个
selection
的TextView
容器中。之后,您只需侦听onProfileChanged
中的AccountHeaderBuilder
事件,并在配置文件更改时更新此TextView
。(您可以通过在
findViewById
容器视图https://github.com/mikepenz/MaterialDrawer/blob/develop/library/src/main/java/com/mikepenz/materialdrawer/AccountHeader.java#L38上使用AccountHeader
搜索来获得此视图)