怎么qq listView滑动删除选项按钮,作为码农,喜欢自己做点小项目自娱自乐,有时候感觉还挺有成就的,昨天晚上弄了一个小demo主要是做了一下放qq的滑动listView出现删除按钮的UI,这里贴一下主要的代码。
大家有需要等有时间上传到osc的git上,还没用过osc的,下面是主要代码,在getView中的代码,这里解决了ontouch与onclick等事件的冲突问题,看大家是否需要源码啊,如果不要的话就不上传了先,有需要的跟我说一声啊。分享在e良师益友网上,现在准备睡觉了。
ViewHolder viewHolder = null;
if (view == null) {
viewHolder = new ViewHolder();
view = LayoutInflater.from(mContext).inflate(R.layout.item, null);
viewHolder.tvTitle = (TextView) view.findViewById(R.id.title);
viewHolder.btnDel = (Button) view.findViewById(R.id.del);
view.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) view.getTag();
}
//为每一个view项设置触控监听
view.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
final ViewHolder holder = (ViewHolder) v.getTag();
switch(event.getAction()) {
case MotionEvent.ACTION_DOWN:
//设置背景为选中状态
v.setBackgroundResource(android.R.color.holo_blue_light);
//获取按下时的x轴坐标
x = event.getX();
//判断之前是否出现了删除按钮如果存在就隐藏
if (curDel_btn != null) {
curDel_btn.setVisibility(View.GONE);
}
break;
case MotionEvent.ACTION_UP:
//设置背景为未选中正常状态
v.setBackgroundResource(android.R.color.background_light);
//获取松开时的x坐标
ux = event.getX();
//判断当前项中按钮控件不为空时
if (holder.btnDel != null) {
//按下和松开绝对值差当大于20时显示删除按钮,否则不显示
if (Math.abs(x - ux) > 20) {
holder.btnDel.setVisibility(View.VISIBLE);
curDel_btn = holder.btnDel;
}
}
break;
default:
v.setBackgroundResource(R.drawable.mm_listitem_simple);
break;
}
return false;
}
});
viewHolder.tvTitle.setText(this.arrays.get(position));
//为删除按钮添加监听事件,实现点击删除按钮时删除该项
viewHolder.btnDel.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if(curDel_btn!=null)
curDel_btn.setVisibility(View.GONE);
arrays.remove(position);
notifyDataSetChanged();
}
});
view.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Toast.makeText(mContext, "View Onclick"+ position, Toast.LENGTH_SHORT).show();
}
});
view.setOnLongClickListener(new OnLongClickListener() {
public boolean onLongClick(View v) {
Toast.makeText(mContext, "Long Click"+ position, Toast.LENGTH_SHORT).show();
return true;
}
});
return view;
教你怎样写qq listView滑动删除按钮
评论
8 views