此问题非常具体针对https://github.com/mikepenz/MaterialDrawer自定义。
我需要自定义我的帐户标题,如下所示:
我设法通过重定向配置文件列表监听器来获取DrawerClickListener#onItemClick回调。但是方向改变时标题选择丢失了。 [我已设置已保存的实例状态]。此外,onItemClick还提供了null IDrawerItem,因为它不是Adapter的一部分。
我是否过于复杂或者PrimaryDrawerItem本身可以扩展为类似于个人资料项目?
答案 0 :(得分:1)
您的问题分为多个问题。让我先谈谈第一个问题。
- 任何时候都只会有一个帐户
醇>
如果您build
AccountHeader
,则可以只提供一个个人资料。构建标头后,您可以随时更新和修改此单个配置文件,只需调用:
//create the profile
final IProfile profile = new ProfileDrawerItem().withName("Mike Penz").withEmail("mikepenz@gmail.com").withIcon("https://avatars3.githubusercontent.com/u/1476232?v=3&s=460").withIdentifier(100);
//build your drawer or do your logic
...
//modify the profile
profile.withName("new name");
//notify the header about the changed profile
headerResult.updateProfile(profile);
- 点击标题(整个区域)应该给我DrawerClickListener#onItemClick callback
醇>
如果您点击AccountHeader
中的某处,则会触发OnAccountHeaderSelectionViewClickListener
.withOnAccountHeaderSelectionViewClickListener(new AccountHeader.OnAccountHeaderSelectionViewClickListener() {
@Override
public boolean onClick(View view, IProfile profile) {
return false;
}
})
- 布局应该像带有额外字段的个人资料一样呈现
醇>
请添加更多详细信息,因为问题似乎不明确。
- 加载ImageHolder以更改为加载基于网址的图片
醇>
示例应用包含CustomDrawerItem
,可通过网址加载图标:CustomUrlPrimaryDrawerItem
答案 1 :(得分:0)
抽屉Itemclick监听器
您必须在setupNavigation内部声明该方法。在导航页脚项中,声明
List<IDrawerItem> stockyItems = new ArrayList<>();
然后使用OnDrawerItemClickListener编写按钮
PrimaryDrawerItem primaryDrawerItem = new PrimaryDrawerItem()
.withName("Settings")
.withIcon(R.drawable.ic_settings)
.withOnDrawerItemClickListener(new Drawer.OnDrawerItemClickListener() {
@Override
public boolean onItemClick(View view, int position, IDrawerItem drawerItem) {
Intent intent = new Intent(MainActivity.this, Settings.class);
startActivity(intent);
finish();
return true;
}
});
最后必须传递对象
stockyItems.add(primaryDrawerItem);
完成