Как я могу создать пользовательский DrawerItem (1. Мне нужно переключиться 2. Мне нужен индикатор состояния boolean) в библиотеке MaterialDrawer? Here Автор MaterialDrawer говорит, что создание пользовательского DrawerItem - очень простая задача, но я не могу найти его в документации этой библиотеки.MaterialDrawer customdraweritem
3
A
ответ
6
Для реализации CustomDrawerItem
вам необходимо реализовать интерфейс IDrawerItem
. Это определяет все необходимые методы. Просто присмотритесь к DividerDrawerItem или SectionDrawerItem
, которые немного проще.
public class DividerDrawerItem extends AbstractDrawerItem<DividerDrawerItem> {
@Override
public String getType() {
return "DIVIDER_ITEM";
}
@Override
@LayoutRes
public int getLayoutRes() {
return R.layout.material_drawer_item_divider;
}
@Override
public void bindView(RecyclerView.ViewHolder holder) {
Context ctx = holder.itemView.getContext();
//get our viewHolder
ViewHolder viewHolder = (ViewHolder) holder;
//set the identifier from the drawerItem here. It can be used to run tests
holder.itemView.setId(getIdentifier());
//define how the divider should look like
viewHolder.view.setClickable(false);
viewHolder.view.setEnabled(false);
viewHolder.view.setMinimumHeight(1);
//set the color for the divider
viewHolder.divider.setBackgroundColor(UIUtils.getThemeColorFromAttrOrRes(ctx, R.attr.material_drawer_divider, R.color.material_drawer_divider));
//call the onPostBindView method to trigger post bind view actions (like the listener to modify the item if required)
onPostBindView(this, holder.itemView);
}
@Override
public ViewHolderFactory getFactory() {
return new ItemFactory();
}
public static class ItemFactory implements ViewHolderFactory<ViewHolder> {
public ViewHolder factory(View v) {
return new ViewHolder(v);
}
}
private static class ViewHolder extends RecyclerView.ViewHolder {
private View view;
private View divider;
private ViewHolder(View view) {
super(view);
this.view = view;
this.divider = view.findViewById(R.id.material_drawer_divider);
}
}
}
[здесь] (http://www.android4devs.com/2015/06/navigation-view-material-design-support.html) является лучшим примером –
Спасибо, но как реализовать его в библиотеке MaterialDrawer? Я нашел, как создать toggle: через ToggleDrawerItem (документация не говорит об этом). Теперь только один вопрос: как создать индикатор логического состояния (например: меню имеет элемент Activity Activity и имеет два состояния, активные и неактивные. Как я могу это показать?) –
вы сделали что-нибудь, если да, чем почтовый индекс, если не использовать Например, я расскажу, что делать дальше –