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

来源:互联网 发布:手机屏幕养兔子软件 编辑:程序博客网 时间:2024/05/21 10:06



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);    }};//设置creatorswipeMenuListView.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 {...@Overridepublic int getViewTypeCount() {// menu type countreturn 2;}@Overridepublic int getItemViewType(int position) {// current menu typereturn type;}...}
创建好条目的类型,还要创建不同的
SwipeMenuCreator
SwipeMenuCreator creator = new SwipeMenuCreator() {@Overridepublic void create(SwipeMenu menu) {// Create different menus depending on the view typeswitch (menu.getViewType()) {case 0:// create menu of type 0break;case 1:// create menu of type 1break;...}}};
7、Other
Step1:
监听swipe处于打开还是关闭的状态
listView.setOnSwipeListener(new OnSwipeListener() {@Overridepublic void onSwipeStart(int position) {// swipe start}@Overridepublic void onSwipeEnd(int position) {// swipe end}});
Step2:
打开SwipeMenuListView菜单的方法
listView.smoothOpenMenu(position);
Step3:打开或关闭动画插入器
// Close InterpolatorlistView.setCloseInterpolator(new BounceInterpolator());// Open InterpolatorlistView.setOpenInterpolator(...);



原创粉丝点击