SwipeListView实现仿ios的侧滑

    xiaoxiao2026-05-01  7

    github地址:https://github.com/xiangzhihong/SwipeMenuListView

    今天介绍一个SwipeMenuListView实现侧滑删除的例子,其实和listview的用法一样,就是多了创建删除等view的步骤,然后通过addview添加到父布局中。

    效果如果:

    当然你也也可以根据自己的需要增加更多的自定义View。

    直接看代码吧:

    Add dependency

    dependencies { compile 'com.baoyz.swipemenulistview:library:1.3.0' }

    Step 1

    add SwipeMenuListView in layout xml <com.baoyz.swipemenulistview.SwipeMenuListView android:id="@+id/listView" android:layout_width="match_parent" android:layout_height="match_parent" />

    Step 2

    create a SwipeMenuCreator to add items. SwipeMenuCreator creator = new SwipeMenuCreator() { @Override public void create(SwipeMenu menu) { // create "open" item SwipeMenuItem openItem = new SwipeMenuItem( getApplicationContext()); // set item background openItem.setBackground(new ColorDrawable(Color.rgb(0xC9, 0xC9, 0xCE))); // set item width openItem.setWidth(dp2px(90)); // set item title openItem.setTitle("Open"); // set item title fontsize openItem.setTitleSize(18); // set item title font color openItem.setTitleColor(Color.WHITE); // add to menu menu.addMenuItem(openItem); // create "delete" item SwipeMenuItem deleteItem = new SwipeMenuItem( getApplicationContext()); // set item background deleteItem.setBackground(new ColorDrawable(Color.rgb(0xF9, 0x3F, 0x25))); // set item width deleteItem.setWidth(dp2px(90)); // set a icon deleteItem.setIcon(R.drawable.ic_delete); // add to menu menu.addMenuItem(deleteItem); } }; // set creator listView.setMenuCreator(creator);

    Step 3

    listener item click event listView.setOnMenuItemClickListener(new OnMenuItemClickListener() { @Override public boolean onMenuItemClick(int position, SwipeMenu menu, int index) { switch (index) { case 0: // open break; case 1: // delete break; } // false : close the menu; true : not close the menu return false; } });

    Swipe directions

    // Right mListView.setSwipeDirection(SwipeMenuListView.DIRECTION_RIGHT); // Left mListView.setSwipeDirection(SwipeMenuListView.DIRECTION_LEFT);

    Create Different Menu

    Use the ViewType of adapter class AppAdapter extends BaseAdapter { ... @Override public int getViewTypeCount() { // menu type count return 2; } @Override public int getItemViewType(int position) { // current menu type return type; } ... } Create different menus depending on the view type 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; ... } } }; 大家可以把代码fork下来,自行修改优化

    最新回复(0)