美文网首页
换一种弹簧风格的侧滑菜单吧!SpringMenu的使用

换一种弹簧风格的侧滑菜单吧!SpringMenu的使用

作者: MRJpeng | 来源:发表于2017-09-25 18:10 被阅读0次

    JPSpringMenu

    Github Project传送门
    SpringMenu是一款滑动菜单,类似AndroidResidemenu,SlidingMenu,和其他滑动菜单之间最大的区别是:它提供的灵活性弹跳,结合了Facebook提供的强大动画库Rebound 。说那么多,还是看演示图比较好

    Design Sketch(PS技术不够,不清晰掉色)

    main.gif

    Usage

    Gradle

    dependencies {
        compile 'com.jpeng:jpspringmenu:$latestVersion'
    }
    

    在Activity内初始化Menu

        // R.layout.view_menu 是你自定义的Menu View的资源ID
        SpringMenu menu = new SpringMenu(this,R.layout.view_menu);
        
        // 为菜单做各种各样的设置...
    

    不要忘记在Activity重写dispatchTouchEvent

        @Override
        public boolean dispatchTouchEvent(MotionEvent ev) {
             return menu.dispatchTouchEvent(ev);
        }
    

    通过SpringConfig,你可以改变菜单和子布局的弹性速度和力量

        // 另一种方式来构建SpringConfig是frombouncinessandspeed
        mSpringMenu.setMenuSpringConfig(SpringConfig.fromOrigamiTensionAndFriction(20,3));
        mSpringMenu.setChildSpringConfig(SpringConfig.fromOrigamiTensionAndFriction(20, 5));
    

    如果有滑块控件和菜单的一些冲突,你可以试试addignoreview忽略它们

        mSpringMenu.addIgnoreView(...);
    

    MenuListener可以用来监听菜单事件的变化,里面有三种回调方法:

        //打开后的回调
        void onMenuOpen();
        //关闭后的回调
        void onMenuClose();
        
        /**
         * 当菜单正在被打开或者被关闭时,这个方法将会被回调(包含拖动弧度)
         * @value: 0f-2f,0f表示菜单关闭,2f则表示打开
         * @bouncing: 这个布尔值用来判断菜单是否在反弹状态
         * 当处于反弹状态时,这个值无限趋近于2f,否则就是0f
         */
        void onProgressUpdate(float value,boolean bouncing);
    
    

    剩余部分较为重要的Api

         // 内容页变暗的效果
         setFadeEnable(boolean);
         
         // 允许菜单开始拖动的距离
         setDragOffset(float);
         
         setMenuListener(MenuListener);
         
         setDirection(int direction);
    

    About Me

    我是在读大三的学生,来自一所非985非211吧,写作不容易,求大神给个star吧

    Final

    至于菜单弹簧效果实现的原理,稍后再解析!!!

    最后感谢AndroidResideMenu这awesome project给了我思路,顺带一句其实这个开源作者是我的...(秘密不能说!)

    相关文章

      网友评论

          本文标题:换一种弹簧风格的侧滑菜单吧!SpringMenu的使用

          本文链接:https://www.haomeiwen.com/subject/qqudextx.html