您的位置:首页 > 其它

listview简单实现侧滑删除仿QQ

2017-09-29 10:24 253 查看
列表使用仿照QQ形式的方式,进行对数据的删除置顶等操作

1首先导入依赖

compile 'com.baoyz.swipemenulistview:library:1.3.0'

2布局
在这里布局文件就是把listview换成SwipeMenuListView就行

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


3适配器
正常使用就可以了

public class Myadapter extends BaseAdapter {
private List<String> list;
private Context context;

public Myadapter(List<String> list, Context context) {
this.list = list;
this.context = context;
}

@Override
public int getCount() {
return list.size();
}

@Override
public Object getItem(int i) {
return list.get(i);
}

@Override
public long getItemId(int i) {
return i;
}

@Override
public View getView(int i, View view, ViewGroup viewGroup) {
Holder holder;
//判断convertview是否为空,为空则赋值
if (view == null) {
holder=new Holder();
view = View.inflat
c9ea
e(context, R.layout.item, null);
holder.title = (TextView) view.findViewById(R.id.title);
view.setTag(holder);
} else {
holder = (Holder) view.getTag();
}
//为控件赋值
holder.title.setText(list.get(i));
return view;
}

//定义holder优化查找控件
class Holder {
TextView title;

}
}


4Activity
查找控件与赋予侧滑样式

listview= (SwipeMenuListView) findViewById(R.id.listView);
listview.setMenuCreator(creator);

添加适配器与现实

list=new ArrayList<>();
for(int i=0;i<20;i++){
list.add("张三");
}
Myadapter adapter=new Myadapter(list,MainActivity.this);
listview.setAdapter(adapter);

设置侧滑样式按钮

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(100);
// 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(100);
// set a icon
deleteItem.setIcon(R.mipmap.ic_launcher);
// add to menu
menu.addMenuItem(deleteItem);
}
};

5侧滑方向设置

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

6侧滑按钮点击事件

listview.setOnMenuItemClickListener(new SwipeMenuListView.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;
}
});

具体请看:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: