Jer*_*emy 9 android android-support-library navigation-drawer android-design-library
有了新NavigationView的仍然建议使用ActionBarDrawerToggle或这不是"材料设计"?例如,之前我们应该在抽屉打开时隐藏操作栏项目,但现在指南说他们应该留下来.
hun*_*ost 16
有了新
NavigationView的仍然建议使用ActionBarDrawerToggle
不,这不是必需的.
如果你看一下"官方"的演示代码为新的设计库,ActionBarDrawerToggle不再使用,因为新的NavigationView和AppCompatActivity并不真正需要它.
随着新的V22支持库,你可以去掉所有的ActionBarDrawerToggle代码,只是使用以下方法来处理之间的相互作用NavigationDrawer和ActionBar/ ToolBar汉堡包图标:
@Override
protected void onCreate(Bundle savedInstanceState) {
...
final ActionBar actionBar = getSupportActionBar();
actionBar.setHomeAsUpIndicator(R.drawable.ic_menu);
actionBar.setDisplayHomeAsUpEnabled(true);
...
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
mDrawerLayout.openDrawer(GravityCompat.START);
return true;
....
}
return super.onOptionsItemSelected(item);
}
Run Code Online (Sandbox Code Playgroud)
你需要提供自己的"汉堡包"画画(R.drawable.ic_menu在我的例子中).除此之外,上面的代码是处理抽屉打开所需的全部代码.该android.R.id.home情况下,onOptionsItemSelected()代表你的汉堡包纸盒键.它指向一个内置的资源ID(不是你添加到菜单xml中的东西),它是自动处理的.
除此之外,你必须通过简单地添加closeDrawers()到你的点击监听器来实现抽屉的关闭,如下所示:
navigationView.setNavigationItemSelectedListener(
new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(MenuItem menuItem) {
// Handle menu item clicks here.
drawerLayout.closeDrawers();
return true;
}
});
Run Code Online (Sandbox Code Playgroud)
closeDrawers()是DrawerLayout的一种方法,它可以处理所有事情.而已.这就是你现在正确处理导航抽屉所需的所有代码.没有更多混乱的代码来翻转汉堡包等等!
当然,如果你真的想,你仍然可以使用NavigationView与ActionBarDrawerToggle旧的方式.但你当然不必.
如果你想要抽屉回调
即使ActionBarDrawerToggle不需要打开/关闭抽屉,它仍然可以用于处理额外的回调(特别是如果您已经使用ActionBar).否则,您可以通过使用DrawerLayout.DrawerListener或使用来实现自己的DrawerLayout.SimpleDrawerListener(),以处理其他打开/关闭相关的事件.
有了新的
NavigationView还是建议使用ActionBarDrawerToggle
是的。两者处理抽屉式导航的两个完全不同的方面。
总的来说,抽屉式导航通常由三个组件组成:
DrawerLayout这DrawerLayout是保存导航抽屉内容和应用程序内容的布局。它允许您从侧面拉入抽屉并在应用程序的内容( 的第一个子项DrawerLayout)上显示抽屉。
您的导航抽屉内容( 的第二个子项DrawerLayout)通常是用户可以单击的项目列表。以前,我见过的大多数实现都使用 aListView或 aRecyclerView以及某种类型的标头。NavigationView是其替代品,用于提供符合材质要求的抽屉内容。
ActionBarDrawerToggle用于在应用栏中提供汉堡包图标。它允许您的用户点击图标来打开或关闭抽屉。
| 归档时间: |
|
| 查看次数: |
7488 次 |
| 最近记录: |