Android 在导航抽屉的显示屏上移动整个ActionBar compat
我试图在单击或滑动显示导航抽屉时实现将整个actionbar及其内容一起移动的效果。我正在使用ActionBar compat,它在创建项目时提供并实现了一个导航抽屉,我所拥有的是导航抽屉显示为默认值,这意味着它在ActionBar下方滑动并覆盖内容。我想要实现的是这样的目标:Android 在导航抽屉的显示屏上移动整个ActionBar compat,android,navigation-drawer,android-actionbar-compat,Android,Navigation Drawer,Android Actionbar Compat,我试图在单击或滑动显示导航抽屉时实现将整个actionbar及其内容一起移动的效果。我正在使用ActionBar compat,它在创建项目时提供并实现了一个导航抽屉,我所拥有的是导航抽屉显示为默认值,这意味着它在ActionBar下方滑动并覆盖内容。我想要实现的是这样的目标: 我对导航栏的定制有点陌生,到目前为止我的搜索没有给出我想要的结果,所以希望有人能在这方面帮助我。希望有一个不使用任何库的简单方法来实现这一点。像这样覆盖导航抽屉 mDrawerLayout = (DrawerLayo
我对导航栏的定制有点陌生,到目前为止我的搜索没有给出我想要的结果,所以希望有人能在这方面帮助我。希望有一个不使用任何库的简单方法来实现这一点。像这样覆盖导航抽屉
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
mDrawerList = (ListView) findViewById(R.id.left_drawer);
frame = (FrameLayout) findViewById(R.id.content_frame);
mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, R.drawable.ic_drawer, R.string.acc_drawer_open, R.string.acc_drawer_close)
{
@SuppressLint("NewApi")
public void onDrawerSlide(View drawerView, float slideOffset)
{
float moveFactor = (mDrawerList.getWidth() * slideOffset);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB)
{
frame.setTranslationX(moveFactor);
}
else
{
TranslateAnimation anim = new TranslateAnimation(lastTranslate, moveFactor, 0.0f, 0.0f);
anim.setDuration(0);
anim.setFillAfter(true);
frame.startAnimation(anim);
lastTranslate = moveFactor;
}
}
};
mDrawerLayout.setDrawerListener(mDrawerToggle);
你会在这里找到解决方案的嗨,谢谢你的回答,但我对此有一些评论。首先,我已经使用android默认资源实现了一个navDrawer,这意味着我不确定mDrawerList的哪一部分,因为drawer的列表附在片段(NavigationDrawerFragment)上,我认为这将导致基于我当前拥有的内容的nullpointer。第二,我使用的是一个重叠的操作栏,因为我需要它是半透明的,所以我不确定这是否也会移动我的操作栏在navDrawer上的显示。最后一点是,我不确定应该如何实现它。哈哈!请帮忙。嗨,好吧,我已经知道我应该如何实现它了。唯一的问题是,尽管内容移动了,但actionbar没有移动。我尝试删除ActionBarOverlay风格,但仍然得到相同的结果。不知道是什么原因引起的。你会找到解决办法的。好吧,现在我又迷路了。哈哈!