【问题标题】:Moving the whole ActionBar compat on display of Navigation Drawer在 Navigation Drawer 的显示上移动整个 ActionBar 兼容性
【发布时间】:2014-08-08 20:09:54
【问题描述】:

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

我对导航栏的自定义有点陌生,到目前为止我的搜索并没有给出我正在寻找的结果,所以希望有人可以帮助我。希望有一种简单的方法可以在不使用任何库的情况下实现这一目标。

【问题讨论】:

标签: android navigation-drawer android-actionbar-compat


【解决方案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);

【讨论】:

  • 您好,感谢您的回答,但我对此有一些意见。第一个是我使用android默认资源实现了一个navDrawer,这意味着我不确定mDrawerList的部分,因为抽屉列表附加到片段(NavigationDrawerFragment),我认为这将导致基于我的空指针目前有。其次是我使用了一个覆盖的 ActionBar,因为我需要它是半透明的,所以我不确定这是否也会在 navDrawer 的显示上移动我的操作栏。最后是我不确定我应该如何实现它。哈哈!请帮忙。
  • 嗨,好的,所以我已经了解了我现在应该如何实现它,唯一的问题是操作栏不会移动,尽管内容会移动。我尝试删除 ActionBarOverlay 样式,但仍然得到相同的结果。不知道是什么原因造成的。
  • Here 你会找到解决办法的。
  • 哎呀,现在我又迷路了。哈哈!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-05-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-09
  • 1970-01-01
相关资源
最近更新 更多