2016-03-17 2 views
1

Мне нужно создать собственную реализацию AccountHeaderBuilder.Extend com.mikepenz.materialdrawer.AccountHeaderBuilder

Итак, я пытаюсь расширить класс от библиотеки MaterialDrawer. В Android-студии, как мне нужно действовать, чтобы это сделать? Следует ли импортировать библиотеку 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:[email protected]') 

Так, в одном предложении: как я продолжу, чтобы иметь возможность расширить классы из другого проекта?

Большого спасибо за помощь

пса: Я был в состоянии интегрировать эту библиотеку и заставить его работать в моем проекте, но теперь мне нужно дополнительное funcionalities.

+0

Зачем вам нужно расширить 'AccountHeaderBuilder'? Чего вы хотите достичь? – mikepenz

+0

Мне нужно: 1: полностью удалить значок для каждого профиля. 2: добавьте дополнительную информацию (лучше TextView) под названием профиля или электронной почтой. Например, [email protected] 2 Дети Женат – estoke

ответ

1

Исключение возникает из-за отсутствия необходимых зависимостей. MaterialDrawer зависит от библиотек Materialize и FastAdapter, которые предоставляют требуемые вспомогательные классы.

Документирование MaterialDrawer состояний добавить transitive=true, которые будут автоматически разрешать суб зависимостей в MaterialDrawer

Так заменить ваше заявление компилировать с:

compile('com.mikepenz:materialdrawer:[email protected]') { 
    transitive = true 
} 

По состоянию требования, указанного в комментарий. Также можно перезаписать макет, используемый для AccountHeaderhttps://github.com/mikepenz/MaterialDrawer/blob/develop/library/src/main/res/layout/material_drawer_header.xml

Вы можете изменить это расположение к чему вы хотите, только помните id S, которые находятся в необходимости оставаться такой же, и вы не можете удалить существующие взгляды как и профили, но вы можете просто изменить его, так что ImageView s находятся в пределах макета и установите его в gone. Таким образом, профили больше не будут видны.

Для дополнительной строки. Вы можете добавить это в контейнер selection, в который включены существующие два TextView. После этого вы просто слушаете событие onProfileChanged от AccountHeaderBuilder и обновляете это TextView при изменении профиля.

(Вы можете получить этот вид с помощью поиска с findViewById на представлении AccountHeader контейнера https://github.com/mikepenz/MaterialDrawer/blob/develop/library/src/main/java/com/mikepenz/materialdrawer/AccountHeader.java#L38)

+0

Да, у меня есть, что проблема возникает, когда я пытаюсь добавить проект в качестве модуля. – estoke

+0

, если вы добавите его в качестве модуля, вам нужно будет добавить все вспомогательные зависимости к вашему проекту. См. Мой обновленный ответ, как вы могли бы достичь своего требования без необходимости добавления библиотеки в качестве модуля. Он также имеет дополнительное преимущество, так как он все равно позволит вам получать обновления из официального репо. – mikepenz

+0

Спасибо за помощь Майка. Попробуй это прямо сейчас :) И большое спасибо за удивительную работу с вашей вашей библиотекой;) – estoke

 Смежные вопросы

  • Нет связанных вопросов^_^