zoukankan      html  css  js  c++  java
  • 今日推荐(三)AndroidResideMenu类似QQ侧滑效果

    效果图:

    DEMO

    本代码即是DEMO,您可以下载后选择您喜欢的IDE运行。SDK版本建议使用4.0以上

    Version Migration

    从 v1.0v1.1v1.2v1.3 升级到 v1.4

    如果你开启了手势滑动,你需要替换被依附的 Activity 里 dispatchTouchEvent() 代码

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

    Requirements

    运行在 Android 2.3 +

    Installation

    Gradle

    repositories {
        mavenCentral()
    }
    dependencies { compile 'com.specyci:residemenu:1.6+'

    }

    Other

    直接导入ResideMenu项目并作为依赖项目
    例子

    or 直接合并到您的项目之中

    1. 复制src/com/special/ResideMenu下的所有代码到您的项目相应位置

    2. 复制libs/nineoldandroids-library-2.4.0.jar到您项目libs/下

    3. 复制res/drawable-hdpi/shadow.9.png到您的项目相应位置

    4. 复制res/layout/residemenu.xml 和 residemenu_item.xml到您的项目相应位置

    Usage

    写在Activity onCreate()中

    // attach to current activity;    resideMenu = new ResideMenu(this);
       resideMenu.setBackground(R.drawable.menu_background);    resideMenu.attachToActivity(this);
       // create menu items;    String titles[] = { "Home", "Profile", "Calendar", "Settings" };
       int icon[] = {
       R.drawable.icon_home,
       R.drawable.icon_profile,
       R.drawable.icon_calendar,
       R.drawable.icon_settings
       };
               
       for (int i = 0; i < titles.length; i++){      ResideMenuItem item = new ResideMenuItem(this, icon[i], titles[i]);      item.setOnClickListener(this);      resideMenu.addMenuItem(item,  ResideMenu.DIRECTION_LEFT);
         // or  ResideMenu.DIRECTION_RIGHT    }

    如果您需要使用手势滑动开启/关闭菜单,请复写activity的dispatchTouchEvent(),代码如下

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

    在某些场景下,手势滑动开启/关闭菜单可能与您的某些控件产生冲突,例如viewpager,这时您可以把viewpager添加到ignored view.请参见下节Ignored Views

    开启/关闭菜单 open or close menu

    resideMenu.openMenu(ResideMenu.DIRECTION_LEFT); 
    // or ResideMenu.DIRECTION_RIGHT
    resideMenu.closeMenu();

    监听菜单状态

    resideMenu.setMenuListener(menuListener);    
      private ResideMenu.OnMenuListener menuListener =
          new ResideMenu.OnMenuListener() {        
            @Override
            public void openMenu() {
                Toast.makeText(mContext, "Menu is opened!", Toast.LENGTH_SHORT)
      .show();
            }        
            @Override
            public void closeMenu() {
                Toast.makeText(mContext, "Menu is closed!", Toast.LENGTH_SHORT)
      .show();
            }
        };

    禁止手势操作某个菜单方向

    resideMenu.setSwipeDirectionDisable(ResideMenu.DIRECTION_RIGHT);

    Ignored Views

    在某些场景下,手势滑动开启/关闭菜单可能与您的某些控件产生冲突,例如viewpager,这时您可以把viewpager添加到ignored view.

    // add gesture operation's ignored views
     FrameLayout ignored_view = (FrameLayout) findViewById(R.id.ignored_view);
     resideMenu.addIgnoredView(ignored_view);

    这样子在ignored_view操作的区域就不允许用手势滑动操作菜单.

    源码下载:

    https://github.com/SpecialCyCi/AndroidResideMenu

     
  • 相关阅读:
    python下正则表达式的随笔记录
    python下的appium控制andriod按键
    支付测试的测试要点记录
    python3的基础数据类型
    【推荐】推荐学习的公众号
    pycharm 配置 github
    python3 字符串格式化
    python 系统设置
    python3 使用SimpleHTTPServer搭建web服务器
    1.6前瞻后顾
  • 原文地址:https://www.cnblogs.com/fengmin/p/5568997.html
Copyright © 2011-2022 走看看