android菜单源代码,Side-Menu.Android

胡志
2023-12-01

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

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

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

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

xmlns:android="http://schemas.android.com/apk/res/android"

android:id="@+id/drawer_layout"

android:layout_width="match_parent"

android:layout_height="match_parent">

android:id="@+id/conteiner_frame"

xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent">

android:id="@+id/content_overlay"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"/>

android:id="@+id/content_frame"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"/>

android:id="@+id/toolbar"

android:layout_height="wrap_content"

android:layout_width="match_parent"

android:minHeight="?attr/actionBarSize"

android:background="?attr/colorPrimary"/>

android:id="@+id/scrollView"

android:scrollbarThumbVertical="@android:color/transparent"

android:layout_width="80dp"

android:layout_height="match_parent"

android:layout_gravity="start|bottom">

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">

ViewAnimator viewAnimator = new ViewAnimator<>(ActionBarActivity.this,

new ArrayList(),

(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接口。

 类似资料: