MenuDrawer

Project Url: SimonVT/MenuDrawer
Introduction: 滑出式菜单,通过拖动屏幕边缘滑出菜单,支持屏幕上下左右划出,支持当前 View 处于上下层,支持 Windows 边缘、ListView 边缘、ViewPager 变化划出菜单等。
AppsDemo: Gmail、Google Music 等大部分 google app
More: Author   ReportBugs   DemoAPK   
Tags:

A slide-out menu implementation, which allows users to navigate between views in your app. Most commonly the menu is revealed by either dragging the edge of the screen, or clicking the 'up' button in the action bar.

Features

  • The menu can be positioned along all four edges.
  • Supports attaching an always visible, non-draggable menu, which is useful on e.g. tablets.
  • The menu can wrap both the content and the entire window.
  • Allows the drawer to be opened by dragging the edge, the entire screen or not at all.
  • Can be used in XML layouts.
  • Indicator that shows which screen is currently visible.

Usage

This library is very simple to use. It requires no extension of custom classes, it's simply added to an activity by calling one of the MenuDrawer#attach(...) methods.

For more examples on how to use this library, check out the sample app.

Left menu

public class SampleActivity extends Activity {

    private MenuDrawer mDrawer;

    @Override
    protected void onCreate(Bundle state) {
        super.onCreate(state);
        mDrawer = MenuDrawer.attach(this);
        mDrawer.setContentView(R.layout.activity_sample);
        mDrawer.setMenuView(R.layout.menu_sample);
    }
}

Right menu

public class SampleActivity extends Activity {

    private MenuDrawer mDrawer;

    @Override
    protected void onCreate(Bundle state) {
        super.onCreate(state);
        mDrawer = MenuDrawer.attach(this, Position.RIGHT);
        mDrawer.setContentView(R.layout.activity_sample);
        mDrawer.setMenuView(R.layout.menu_sample);
    }
}

Including in your project

Either include it in your project as an android library project, or use gradle to grab it from maven central:

compile 'net.simonvt.menudrawer:menudrawer:{latest-version}'

Credits

  • Cyril Mottier for his articles on the pattern

License

Copyright 2012 Simon Vig Therkildsen

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Apps
About Me
GitHub: Trinea
Facebook: Dev Tools