listview左滑删除和置顶(仿QQ)



1、添加依赖

dependencies {
    compile 'com.baoyz.swipemenulistview:library:1.3.0'
}
2、创建好Demo后,在XML文件中添加

<com.baoyz.swipemenulistview.SwipeMenuListView
        android:id="@+id/listView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
3、创建一个SwipeMenuCreator(用于添加Item)
SwipeMenuCreator creator = new SwipeMenuCreator() {
    @Override
    public void create(SwipeMenu menu) {
        //创建一个开放的item
        SwipeMenuItem openItem = new SwipeMenuItem(getApplicationContext());
        //设置item的背景
        openItem.setBackground(new ColorDrawable(Color.BLUE));
        //设置item的宽度
        openItem.setWidth(90);
        //设置item的标题
        openItem.setTitle("置顶");
        openItem.setTitleColor(Color.WHITE);
        //设置item标题字体的大小
        openItem.setTitleSize(15);
        //添加到菜单中
        menu.addMenuItem(openItem);
        //创建删除的item
        SwipeMenuItem deleteItem = new SwipeMenuItem(getApplicationContext());
        //设置背景颜色
        deleteItem.setBackground(new ColorDrawable(Color.RED));
        //设置宽度
        deleteItem.setWidth(90);
        //设置一个图标
        deleteItem.setIcon(R.mipmap.ic_launcher);
        //添加到菜单中
        menu.addMenuItem(deleteItem);
    }
};
//设置creator
swipeMenuListView.setMenuCreator(creator);
4、监听它的点击事件
//可以添加点击事件
swipeMenuListView.setOnMenuItemClickListener(new SwipeMenuListView.OnMenuItemClickListener() {
    @Override
    public boolean onMenuItemClick(int position, SwipeMenu menu, int index) {
        switch (index){
            case 0:
                Toast.makeText(MainActivity.this, "点击了0", Toast.LENGTH_SHORT).show();
                break;
            case 1:
                Toast.makeText(MainActivity.this, "点击了1", Toast.LENGTH_SHORT).show();
                break;
        }
        return false;
    }
});
5、设置滑动的方向
//设置滑动的方向
swipeMenuListView.setSwipeDirection(SwipeMenuListView.DIRECTION_LEFT);//左
swipeMenuListView.setSwipeDirection(SwipeMenuListView.DIRECTION_RIGHT);//右
6、创建不同的Menu可以实现下图效果。

class AppAdapter extends BaseAdapter {

		...
		
		@Override
		public int getViewTypeCount() {
			// menu type count
			return 2;
		}
		
		@Override
		public int getItemViewType(int position) {
			// current menu type
			return type;
		}

		...
	}
创建好条目的类型,还要创建不同的
SwipeMenuCreator
SwipeMenuCreator creator = new SwipeMenuCreator() {

			@Override
			public void create(SwipeMenu menu) {
				// Create different menus depending on the view type
				switch (menu.getViewType()) {
				case 0:
					// create menu of type 0
					break;
				case 1:
					// create menu of type 1
					break;
				...
				}
			}

		};
7、Other
Step1:
监听swipe处于打开还是关闭的状态
listView.setOnSwipeListener(new OnSwipeListener() {
			
	@Override
	public void onSwipeStart(int position) {
		// swipe start
	}
	
	@Override
	public void onSwipeEnd(int position) {
		// swipe end
	}
});
Step2:
打开SwipeMenuListView菜单的方法
listView.smoothOpenMenu(position);
Step3:打开或关闭动画插入器
// Close Interpolator
listView.setCloseInterpolator(new BounceInterpolator());
// Open Interpolator
listView.setOpenInterpolator(...);



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值