我需要构建自己的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依赖于提供必需的帮助程序类的MaterializeFastAdapter库。

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。因此,配置文件将不再可见。

对于其他行。您可以将其添加到包含现有两个selectionTextView容器中。之后,您只需侦听onProfileChanged中的AccountHeaderBuilder事件,并在配置文件更改时更新此TextView

(您可以通过在findViewById容器视图https://github.com/mikepenz/MaterialDrawer/blob/develop/library/src/main/java/com/mikepenz/materialdrawer/AccountHeader.java#L38上使用AccountHeader搜索来获得此视图)

07-28 14:05