Перемещение всего компата ActionBar на дисплее Navigation Drawer

Я пытаюсь добиться эффекта перемещения всей панели действий вместе с ее содержимым при отображении панели навигации по щелчку или слайду. Я использую Compat ActionBar, предоставленный и реализовавший Навигационный ящик при создании проекта, и у меня есть то, что ящик Nav отображается по умолчанию, что означает, что он скользит под ActionBar и покрывает содержимое. То, что я хотел достичь, это что-то вроде этого:

введите описание изображения здесь

Я немного новичок в настройке панели навигации, и мои поиски пока не дают результата, который я ищу, поэтому надеюсь, что кто-то может помочь мне в этом. Надеюсь, что есть простой способ достичь этого без использования каких-либо библиотек.

1 ответ

Переопределите навигационный ящик следующим образом.

 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);
Другие вопросы по тегам