Side-Menu.Android

介绍:

酷炫效果的侧边菜单。

运行效果:

使用说明:

效果来自dribbble上的概念设计 project on dribbble.

依赖Ozodrukh的CircularReveal项目中的动画工具库。

ps 作者的文字实在是不好翻译:

首先你需要用git submodule update 将动画模块上传-初始化命令中你必须创建一个显示在当前Circular Reveal animated view后面的overlay。添加到菜单中的item都必须添加到LinearLayout中。

<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();
            }

为了得到menu item的名称和drawable资源,所有的item都必须实现Resourceble 接口。为了得到fragment的截图,所有的fragment都必须实现ScreenShotable接口。

已下载
0