Android仿微信滑动弹出编辑、删除菜单效果、增加下拉刷新功能

2019-12-10 19:24:05王振洲
易采站长站为您分析Android仿微信滑动弹出编辑、删除菜单效果、增加下拉刷新功能,感兴趣的小伙伴们可以参考一下  

如何为不同的list item呈现不同的菜单,本文实例就为大家介绍了Android仿微信或QQ滑动弹出编辑、删除菜单效果、增加下拉刷新等功能的实现,,具体内容如下

效果图:

Android仿微信滑动弹出编辑、删除菜单效果、增加下拉刷新功能

1. 下载开源项目,并将其中的liberary导入到自己的项目中:

Android仿微信滑动弹出编辑、删除菜单效果、增加下拉刷新功能

2. 使用SwipeMenuListView代替ListView,在页面中布局:

<android.support.v4.widget.SwipeRefreshLayout 
  android:id="@+id/swipeRefreshMusic" 
  android:layout_width="match_parent" 
  android:layout_height="wrap_content"> 
 
  <com.baoyz.swipemenulistview.SwipeMenuListView 
    android:id="@+id/listViewMusic" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" /> 
 
</android.support.v4.widget.SwipeRefreshLayout> 

 注: SwipeRefreshLayout主要是为了给该列表增加下拉刷新功能!

3. 为该ListView创建适配器,与正常的实现并无二致:

public class MusicAdapter extends BaseAdapter { 
 
  private List<Music> mDatas; 
 
  private Context mContext; 
 
  public MusicAdapter(List<Music> mDatas, Context mContext) { 
    this.mDatas = mDatas; 
    this.mContext = mContext; 
  } 
 
  @Override 
  public int getCount() { 
    return mDatas.size(); 
  } 
 
  @Override 
  public Music getItem(int position) { 
    return mDatas.get(position); 
  } 
 
  @Override 
  public long getItemId(int position) { 
    return position; 
  } 
 
  @Override 
  public View getView(int position, View convertView, ViewGroup parent) { 
    if (convertView == null) { 
      convertView = View.inflate(mContext, R.layout.list_item_music, null); 
      new ViewHolder(convertView); 
    } 
 
    ViewHolder holder = (ViewHolder) convertView.getTag(); 
 
    Music music = mDatas.get(position); 
 
    holder.textTitle.setText(music.title); 
    holder.textDesc.setText(music.desc); 
 
    return convertView; 
  } 
 
  class ViewHolder { 
    TextView textTitle; 
    TextView textDesc; 
 
    public ViewHolder(View view) { 
      textTitle = (TextView) view.findViewById(R.id.textTitle); 
      textDesc = (TextView) view.findViewById(R.id.textDesc); 
      view.setTag(this); 
    } 
  } 
}