1

我需要构建自己的 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:我已经能够集成这个库并让它在我的项目中工作,但现在我需要额外的功能。

4

1 回答 1

1

发生异常是因为缺少所需的依赖项。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需要保持不变的 s,并且您不能删除现有视图(如配置文件),但您可以更改它以使ImageViews 在布局内,并且将此设置为gone. 因此,配置文件将不再可见。

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

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

于 2016-03-17T13:51:24.660 回答