ListView滑动菜单,类似于QQ5.0中的效果

来源:互联网 发布:55开的淘宝店 编辑:程序博客网 时间:2024/05/22 09:43
ListView滑动菜单,类似于QQ5.0中的效果,纯代码添加菜单,不需要在item布局文件中添加菜单的布局。

Screenshot 

使用方法

第一步, 使用SwipeMenuListView

  1. <com.baoyz.swipemenulistview.SwipeMenuListView
  2.         android:id="@+id/listView"
  3.         android:layout_width="match_parent"
  4.         android:layout_height="match_parent" />
复制代码


第二步,创建一个菜单生成器,无需写布局文件,通过 SwipeMenuItem 可以创建滑出菜单的选项,可以指定文字标题,图片,或者是文字+图片的效果。
  1. SwipeMenuCreator creator = new SwipeMenuCreator() {

  2.     @Override
  3.     public void create(SwipeMenu menu) {
  4.     // 创建一个Item
  5.     SwipeMenuItem openItem = new SwipeMenuItem(
  6.     getApplicationContext());
  7.     // 设置背景
  8.     openItem.setBackground(new ColorDrawable(Color.rgb(0xC9, 0xC9,
  9.     0xCE)));
  10.     // 设置宽度
  11.     openItem.setWidth(dp2px(90));
  12.     // 设置显示的文字
  13.     openItem.setTitle("Open");
  14.     // 设置文字大小
  15.     openItem.setTitleSize(18);
  16.     // 设置文字颜色
  17.     openItem.setTitleColor(Color.WHITE);
  18.     // 添加到菜单里
  19.     menu.addMenuItem(openItem);

  20.     // 再创建一个Item
  21.     SwipeMenuItem deleteItem = new SwipeMenuItem(
  22.     getApplicationContext());
  23.     // 设置背景
  24.     deleteItem.setBackground(new ColorDrawable(Color.rgb(0xF9,
  25.     0x3F, 0x25)));
  26.     // 设置宽度
  27.     deleteItem.setWidth(dp2px(90));
  28.     // 设置一个图标
  29.     deleteItem.setIcon(R.drawable.ic_delete);
  30.     // 添加到菜单
  31.     menu.addMenuItem(deleteItem);
  32.     }
  33. };

  34. // 将菜单生成器设置给ListView即可
  35. listView.setMenuCreator(creator);
复制代码


第三步,监听Item的点击事件
  1. listView.setOnMenuItemClickListener(new OnMenuItemClickListener() {
  2.         @Override
  3.         public void onMenuItemClick(int position, SwipeMenu menu, int index) {
  4.                 switch (index) {
  5.                 case 0:
  6.                         // 第一项被点击
  7.                         break;
  8.                 case 1:
  9.                         // 第二项被点击
  10.                         break;
  11.                 }
  12.         }
复制代码


其他设置
可以为打开和关闭菜单的动画添加一个 Interpolator

  1. // Close Interpolator
  2. listView.setCloseInterpolator(new BounceInterpolator());
  3. // Open Interpolator
  4. listView.setOpenInterpolator(...);
复制代码


例如,关闭的时候有个回弹的效果


Screenshot

0 0
原创粉丝点击