我已经使用actionbar sherlock实现了新抽屉,并且显然操作栏保持在同一状态。
我已经实现了ActionBarDrawerToggle接口来处理打开/关闭回调。
actionBarDrawerToggle = new ActionBarDrawerToggle(this, menu, R.drawable.ic_launcher,
R.string.app_name, R.string.app_name) {
@Override
public void onDrawerOpened(View drawerView) {
super.onDrawerOpened(drawerView);
drawerOpened = true;
sliderButton.setBackgroundResource(R.drawable.tab_bar_menu_icon_push);
}
@Override
public void onDrawerClosed(View drawerView) {
super.onDrawerClosed(drawerView);
drawerOpened = false;
sliderButton.setBackgroundResource(R.drawable.tab_menu);
}
};
menu.setDrawerListener(actionBarDrawerToggle);
如何设置动作栏以及抽屉菜单移动?
答案 0 :(得分:16)
这些问题对我来说似乎有些混乱,但我想如果你有正确的链接和一些历史记录,这是非常简单的答案,我将在这里尝试提供:
正如您在官方设计指南>>>LINK<<<中看到的那样:抽屉应该涵盖主要内容,ActionBar和内容都要保持固定,而不是移动。在屏幕上移动的唯一元素是实际的抽屉。
但这种模式仅在一个月前在Google I / O 2013期间发布。在此之前,每个Google应用程序都在做那个开发人员想要做的事情。现在谷歌I / O已经通过,它们都已经完全符合官方指南(大多数已经更新,例如Gmail和G +)。
如果您不想遵循官方指南并希望在抽屉打开时将整个应用程序(ActionBar和内容)移出屏幕,最简单的方法是使用优秀的SlidingMenu库{{ 3}}。如果你阅读这些例子并在网上搜索,我相信你会找到实现它的方法。
如果你想遵循官方指南,但也想使用ActionBarSherlock(这就是我在当前项目中所做的那样)你可以在官方项目的这个GIT拉取请求中找到与ActionBarSherlock兼容的ActionBarDrawerToggle { {3}}但是这个拉取请求没有被接受,所以你可以从那里复制代码并放在你的项目上,或者你可以在原来的ActionBarSherlock >>>LINK<<<中使用这个已经实现并已经应用的人我建议的修复。
我希望这能回答你的问题。
答案 1 :(得分:2)
我最近正在阅读类似的问题。它可能会给出一些答案: How did Google manage to do this? Slide ActionBar in Android application