Android 在导航抽屉的显示屏上移动整个ActionBar compat

Android 在导航抽屉的显示屏上移动整个ActionBar compat,android,navigation-drawer,android-actionbar-compat,Android,Navigation Drawer,Android Actionbar Compat,我试图在单击或滑动显示导航抽屉时实现将整个actionbar及其内容一起移动的效果。我正在使用ActionBar compat,它在创建项目时提供并实现了一个导航抽屉,我所拥有的是导航抽屉显示为默认值,这意味着它在ActionBar下方滑动并覆盖内容。我想要实现的是这样的目标: 我对导航栏的定制有点陌生,到目前为止我的搜索没有给出我想要的结果,所以希望有人能在这方面帮助我。希望有一个不使用任何库的简单方法来实现这一点。像这样覆盖导航抽屉 mDrawerLayout = (DrawerLayo

我试图在单击或滑动显示导航抽屉时实现将整个actionbar及其内容一起移动的效果。我正在使用ActionBar compat,它在创建项目时提供并实现了一个导航抽屉,我所拥有的是导航抽屉显示为默认值,这意味着它在ActionBar下方滑动并覆盖内容。我想要实现的是这样的目标:


我对导航栏的定制有点陌生,到目前为止我的搜索没有给出我想要的结果,所以希望有人能在这方面帮助我。希望有一个不使用任何库的简单方法来实现这一点。

像这样覆盖导航抽屉

 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风格,但仍然得到相同的结果。不知道是什么原因引起的。你会找到解决办法的。好吧,现在我又迷路了。哈哈!