android - 扩展 com.mikepenz.materialdrawer.AccountHeaderBuilder

标签 android android-gradle-plugin materialdrawer

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

所以我正在尝试从 MaterialDrawer 扩展一个类图书馆。 在 Android Studio 中,我需要如何进行才能做到这一点? MaterialDrawer 库应该作为模块导入吗?

如果是,为什么会出现如下错误: 错误:(1290) 检索项目的父项时出错:找不到与给定名称“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,并且您不能删除现有 View (如配置文件),但您可以更改它,使 ImageView 位于布局内,并将其设置为 gone。因此配置文件将不再可见。

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

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

关于android - 扩展 com.mikepenz.materialdrawer.AccountHeaderBuilder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36062394/

相关文章:

java - 如何为单独的 3 个按钮设置计数器,如果单击这些按钮,计数器将增加 5、10、20

android - 停止从 Android Studio 2.2 同步构建并自动构建

android - 错误 : Conflict with dependency 'com.android.support:multidex' in project

java - MaterialDrawer 添加配置文件选项

android - 刷新折叠的 itemDrawer

android - 如何测试您的应用程序被杀死并重新启动?

android 绑定(bind)到 AccessibilityService

android - 如何使用视频 url 字符串在 GridView 中显示视频

android - 在 Android Studio 中使用 gradle 删除发布版本的代码行

android - 工具栏从顶部切割。如何显示完整的工具栏?