扩展 com.mikepenz.materialdrawer.AccountHeaderBuilder

Extend com.mikepenz.materialdrawer.AccountHeaderBuilder

我需要构建自己的 AccountHeaderBuilder 实现。

所以我正在尝试从 MaterialDrawer 库扩展 class。 在 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

我的 class 扩展 AccountHeaderBuilder 需要在同一个包中...所以我的理解是我不能只在 gradle 文件中使用。

compile('com.mikepenz:materialdrawer:5.0.9@aar')

所以,一句话:我如何继续能够从另一个项目扩展 classes?

非常感谢您的帮助

ps:我已经能够集成这个库并使其在我的项目中工作,但现在我需要额外的功能。

出现异常是因为缺少所需的依赖项。 MaterialDrawer 依赖于 Materialize and 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

的布局

您可以将该布局更改为您想要的任何内容,只需记住需要保持不变的 ids,并且您不能删除现有视图(如配置文件),但您可以更改这样 ImageView 就在一个布局中,并将这个设置为 gone。因此配置文件将不再可见。

对于附加行。您可以将此添加到包含现有两个 TextViewselection 容器中。之后,您只需监听来自 AccountHeaderBuilderonProfileChanged 事件,并在配置文件更改时更新此 TextView

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