Skip to content

loserdog-err/FabMenu

Repository files navigation

FabMenu

fab 按钮打开 menu 的一个封装组件

##1.效果展示 <img src="https://github.com/Chenantao/FabMenu/blob/master/screenshot/zhihu.gif" width=250" height="400"> ##2.添加依赖 compile 'com.chenantao:FabMenu:1.0.1'

##3.在布局中引入控件

 <com.chenantao.fabMenu.FabMenu
        android:id="@+id/fabMenu"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingBottom="10dp"
        android:paddingRight="10dp"
        android:paddingTop="10dp"
        app:mGravity="left_top"
        app:mMenu="@menu/menu"
        app:mMenuItemAnim="zhihu"/>

##自定义属性说明 1)mGravity:控件的位置,有四个可选值:

  1. 左上( left_top )
  2. 右上( right_top )
  3. 左下( left_bottom )
  4. 右下( right_bottom )

2)mMenu:菜单项,跟 activity 设置 menu 一样,直接在 menu 文件夹中设置。

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/menu_ask"
        android:icon="@mipmap/menu1"
        android:title="提问"/>
    <item
        android:id="@+id/menu_answer"
        android:icon="@mipmap/menu2"
        android:title="回答"/>
    <item
        android:id="@+id/menu_write"
        android:icon="@mipmap/menu3"
        android:title="写文章"/>
</menu>

3)mMenuItemAnim:菜单打开以及关闭的时候菜单项的动画,libiary 预置了三个动画 zhihu scheduleShow fade,效果如上面所示,你也可以自己实现动画效果,按照如下格式.

public interface FabMenuAnim {

	Animator provideOpenAnimator(ViewGroup menuItem, View icon, View title,int index);

	Animator provideCloseAnimator(final ViewGroup menuItem, View icon, View title,int index);

	/**
	 * 避免 item 跟 menu 的动画看起来不协调,提供一个方法为 menu 设置动画时间
	 * @return
	 */
	long provideAnimDuration();
}

实现 FabMenuAnim 接口,并设置进控件即可。详情可见 libiary 动画的实现

mFabMenu.setMenuItemAnim(new ZhihuAnim());

About

fab 按钮打开 menu 的一个封装组件

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages