您的位置:首页 > 移动开发 > Android开发

Android功能之第三方SwipeMenuListView,Item项的侧滑

2015-10-19 20:35 489 查看
针对 ListView item 的侧滑菜单,项目地址:https://github.com/baoyongzhang/SwipeMenuListView

库工程、Demo地址:http://pan.baidu.com/s/1sjEFbjR



Usage

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;
...
}
}

};


Other

OnSwipeListener

listView.setOnSwipeListener(new OnSwipeListener() {

@Override
public void onSwipeStart(int position) {
// swipe start
}

@Override
public void onSwipeEnd(int position) {
// swipe end
}
});


open menu method for SwipeMenuListView

listView.smoothOpenMenu(position);
Open/Close Animation Interpolator
// Close Interpolator
listView.setCloseInterpolator(new BounceInterpolator());
// Open Interpolator
listView.setOpenInterpolator(...);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android listview