2016-10-05 2 views
0

Мне нужно создать два MaterialDrawer для одной активности и переключаться между ними. Но мне нужно, чтобы элементы обновлялись, когда ящик отображается на экране.Просмотр переключения между макетами MaterialDrawer

Со свойствами, которые у нас есть для MaterialDrawer, изменения между одним расположением ящика на другое могут быть видны только после закрытия ящика, и вы снова коснитесь переключателя выдвижного ящика.

Возможно ли выполнить обновление в макете, сделать недействительным или уведомить об изменениях во время отображения ящика при переключении между ящиками, чтобы изменения отображались «на лету»?

Спасибо, Alexandre Бьянки

+0

Почему вам нужно 2 разных ящиков? Невозможно просто отключить элементы во время выполнения? – mikepenz

+0

Привет Майк. можно переключаться между предметами, но я думаю, что только после закрытия и открытия снова ящик материала. Я хочу переключиться и увидеть другой материал, который меняет старый ящик материала, как мы можем изменить текст из текстового поля. Является ли это возможным ? –

ответ

0

MaterialDrawer поставляется с простым в использовании API, который позволит вам изменять элементы, показанные в Drawer во время выполнения, без необходимости создания нового объекта Drawer.

Вы можете удалить текущие элементы в списке в любое время с помощью метода removeAllItems. https://github.com/mikepenz/MaterialDrawer/blob/develop/library/src/main/java/com/mikepenz/materialdrawer/Drawer.java#L747

И вы можете легко добавлять новые элементы в том же стиле, с помощью метода addItems: https://github.com/mikepenz/MaterialDrawer/blob/develop/library/src/main/java/com/mikepenz/materialdrawer/Drawer.java#L756

Эти изменения будут непосредственно отражать в пользовательском интерфейсе.

Для некоторых более сложных usecases вы также можете посмотреть в исходный код, используемый для AccountSwitcher, который будет переключать 2 списка в Drawer и анимировать их: https://github.com/mikepenz/MaterialDrawer/blob/develop/library/src/main/java/com/mikepenz/materialdrawer/AccountHeaderBuilder.java#L1348

+0

Спасибо, Майк. –

+0

Майк, можете ли вы предоставить мне пример использования счетчика? Эта ссылка, которую вы написали, показывает метод toggleSelectionList. –

+0

@AlexandreBianchi да. как вы хотите, чтобы списки обрабатывались одновременно. который не зависит от реального 'AccountSwitcher', используемого с' AccountHeader'. Вышеприведенная информация показывает только код, который я использую внутри, чтобы одновременно обрабатывать разные списки. Вы можете по-прежнему использовать вышеупомянутый вариант removeAllItems, addItems. Что будет в основном делать то же самое, не сохраняя состояния – mikepenz