SwipeMenuListView】针对ListView item的侧滑菜单

项目地址:https://github.com/baoyongzhang/SwipeMenuListView

Usage

Step 1:importswipemenulistview.jar

Step 2:add activity_main.xml in layout xml

<RelativeLayout xmlns:android=""xmlns:tools=""android:layout_width="match_parent"android:layout_height="match_parent"tools:context="${relativePackage}.${activityClass}"><com.baoyz.swipemenulistview.SwipeMenuListViewandroid:id="@+id/listView"android:layout_width="match_parent"android:layout_height="match_parent" /></RelativeLayout>Step 3:add item_list_app.xml in layout xml

<RelativeLayout xmlns:android=""xmlns:tools=""android:layout_width="match_parent"android:layout_height="wrap_content"android:padding="8dp" ><ImageViewandroid:id="@+id/iv_icon"android:layout_width="50dp"android:layout_height="50dp"android:src="@drawable/ic_launcher" /><TextViewandroid:id="@+id/tv_name"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerVertical="true"android:layout_marginLeft="10dp"android:layout_toRightOf="@+id/iv_icon"android:text="name"android:textColor="@android:color/black"android:textSize="18sp" /></RelativeLayout>Step 4:add ic_delete.png in drawble-hdpi

Step 5:add the following code in MainActivity.java

package com.example.swipemenulistviewdemo;import java.util.List;import com.baoyz.swipemenulistview.SwipeMenu;import com.baoyz.swipemenulistview.SwipeMenuCreator;import com.baoyz.swipemenulistview.SwipeMenuItem;import com.baoyz.swipemenulistview.SwipeMenuListView;import com.baoyz.swipemenulistview.SwipeMenuListView.OnMenuItemClickListener;import android.app.Activity;import android.content.pm.ApplicationInfo;import android.graphics.Color;import android.graphics.drawable.ColorDrawable;import android.os.Bundle;import android.util.TypedValue;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends Activity {private List<ApplicationInfo> mAppList;private AppAdapter mAdapter;private SwipeMenuListView mListView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mAppList = getPackageManager().getInstalledApplications(0);mListView = (SwipeMenuListView) findViewById(R.id.listView);mAdapter = new AppAdapter();mListView.setAdapter(mAdapter);SwipeMenuCreator creator = new SwipeMenuCreator() {@Overridepublic void create(SwipeMenu menu) {// create "open" itemSwipeMenuItem openItem = new SwipeMenuItem(getApplicationContext());// set item backgroundopenItem.setBackground(new ColorDrawable(Color.rgb(0xC9, 0xC9,0xCE)));// set item widthopenItem.setWidth(dp2px(90));// set item titleopenItem.setTitle("Open");// set item title fontsizeopenItem.setTitleSize(18);// set item title font coloropenItem.setTitleColor(Color.WHITE);// add to menumenu.addMenuItem(openItem);// create "delete" itemSwipeMenuItem deleteItem = new SwipeMenuItem(getApplicationContext());// set item backgrounddeleteItem.setBackground(new ColorDrawable(Color.rgb(0xF9,0x3F, 0x25)));// set item widthdeleteItem.setWidth(dp2px(90));// set a icondeleteItem.setIcon(R.drawable.ic_delete);// add to menumenu.addMenuItem(deleteItem);}};// set creatormListView.setMenuCreator(creator);mListView.setOnMenuItemClickListener(new OnMenuItemClickListener() {@Overridepublic boolean onMenuItemClick(int position, SwipeMenu menu, int index) {switch (index) {case 0:// openToast.makeText(getApplicationContext(), "Open", Toast.LENGTH_SHORT).show();break;case 1:// deleteToast.makeText(getApplicationContext(), "Delete", Toast.LENGTH_SHORT).show();//mAppList.remove(position);//mAdapter.notifyDataSetChanged();break;}// false : close the menu; true : not close the menureturn false;}});}class AppAdapter extends BaseAdapter {@Overridepublic int getCount() {return mAppList.size();}@Overridepublic ApplicationInfo getItem(int position) {return mAppList.get(position);}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {if (convertView == null) {convertView = View.inflate(getApplicationContext(),R.layout.item_list_app, null);new ViewHolder(convertView);}ViewHolder holder = (ViewHolder) convertView.getTag();ApplicationInfo item = getItem(position);holder.iv_icon.setImageDrawable(item.loadIcon(getPackageManager()));holder.tv_name.setText(item.loadLabel(getPackageManager()));return convertView;}class ViewHolder {ImageView iv_icon;TextView tv_name;public ViewHolder(View view) {iv_icon = (ImageView) view.findViewById(R.id.iv_icon);tv_name = (TextView) view.findViewById(R.id.tv_name);view.setTag(this);}}}private int dp2px(int dp) {return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp,getResources().getDisplayMetrics());}}

,忍耐力较诸脑力,尤胜一筹。

SwipeMenuListView】针对ListView item的侧滑菜单

相关文章:

你感兴趣的文章:

标签云: