效果:
地址:https://github.com/Yalantis/Side-Menu.Android
Using
First of all you have to upload animation submodule with git submodule update --init
command
Or you can add gradle dependency with command:
dependencies {
compile 'com.yalantis:sidemenu:1.0'`
}
.
and command:
repositories { maven { url "https://jitpack.io" } } dependencies { compile 'com.github.ozodrukh:CircularReveal:(latest-release)@aar' }
for CircularReveal module
After you have to create special overlay layout to show in behind current Circular Reveal
animated view. And to add all items to menu you have to add all of them intoLinearLayout
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent"> <io.codetail.widget.RevealFrameLayout android:id="@+id/conteiner_frame" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:id="@+id/content_overlay" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"/> <LinearLayout android:id="@+id/content_frame" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"/> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_height="wrap_content" android:layout_width="match_parent" android:minHeight="?attr/actionBarSize" android:background="?attr/colorPrimary"/> </io.codetail.widget.RevealFrameLayout> <ScrollView android:id="@+id/scrollView" android:scrollbarThumbVertical="@android:color/transparent" android:layout_width="80dp" android:layout_height="match_parent" android:layout_gravity="start|bottom"> <LinearLayout android:id="@+id/left_drawer" android:orientation="vertical" android:layout_width="80dp" android:layout_height="wrap_content" android:divider="@android:color/transparent" android:dividerHeight="0dp" android:background="@android:color/transparent"> <!-- Layout of Drawer --> </LinearLayout> </ScrollView> </android.support.v4.widget.DrawerLayout>
ViewAnimator viewAnimator = new ViewAnimator<>(ActionBarActivity.this, new ArrayList<Resourceble>(), (LinearLayout) findViewById(R.id.left_drawer), contentFragment, drawerLayout); //to open menu you have to override ActionBarDrawerToggle method @Override public void onDrawerSlide(View drawerView, float slideOffset) { super.onDrawerSlide(drawerView, slideOffset); if (slideOffset > 0.6 && viewAnimator.getLinearLayout().getChildCount() == 0) viewAnimator.showMenuContent(); } public void onDrawerClosed(View view) { super.onDrawerClosed(view); viewAnimator.getLinearLayout().removeAllViews(); viewAnimator.getLinearLayout().invalidate(); }
All menu items should implementResourceble
interface to get menu item name and drawable res And all fragments should implement ScreenShotable
to get screenshot of a fragment
https://mp.weixin.qq.com/s/WiZbbaIGqCcVtrmujgAlLA