仿qq横向滑动删除的 SwipeMenuListView
@(安卓开发)[android开发|自定义view]
SwipeMenuListView是利用Scroller实现的横滑item出现菜单项的listview, 源码已分享在Github,注释清晰,欢迎查看指正。
一、Demo展示
先上效果图
二、使用方式
1、为SwipeMenuListView 新建Adapter
为ListView 新建Adapter的方式和普通的listview没有太大的不同,只是在Adapter的getView里要用item的主体View和滑动出来的菜单View来构造SwipeMenuItemView,然后将构造的SwipeMenuItemView返回给adapter。
//传入上下文context、ListView的宽度、主体内容View 和 菜单View
convertView = new SwipeMenuItemView(context, mListView.getWidth(), contentView, menuView);
adapter getView() 部分的代码如下:
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
Holder holder;
if (null == convertView) {
//获取主体内容View 和 菜单View
View contentView = LayoutInflater.from(activity).inflate(R.layout.item_content, null);
View menuView = LayoutInflater.from(activity).inflate(R.layout.item_menu, null);
//构造可以横滑显示菜单项的SwipeMenuItemView
convertView = new SwipeMenuItemView(context, mListView.getWidth(), contentView, menuView);
holder.contentView = content;
holder.menuView = menuView;
convertView.setTag(holder);
} else {
holder = (Holder) convertView.getTag();
}
//横滑出的菜单项设置点击事件
holder.menuView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//item_menu is clicked
}
});
return convertView;
}