轉載:http://dwtedx.sinaapp.com/itshare_290.html
本例子實現了滑動刪除ListView的Itemdemo的效果、大家都知道、這種創意是來源於IOS的、左滑刪除的功能、在Android上面實現比較麻煩、本例子中不僅實現了左滑刪除功能、還實現了左滑贊、左滑分享、左滑收藏等功能、當然大家也可以根據自己項目的需求來修改功能、QQ和微信也實現了相同的功能、大家可以看看、先上程序運行的效果
怎么樣、大家看了這個截圖是不是很心動呀、而且在左滑的時候還配有簡單的滑動動畫呢、非常不錯、下面一起來看看實現過程吧
初始化代碼
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_list); mAppList = getPackageManager().getInstalledApplications(0); mListView = (SwipeMenuListView) findViewById(R.id.listView); mAdapter = new AppAdapter(); mListView.setAdapter(mAdapter); // step 1. create a MenuCreator 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 mListView.setMenuCreator(creator); }
綁定左滑和刪除事件
// step 2. listener item click event mListView.setOnMenuItemClickListener(new OnMenuItemClickListener() { @Override public void onMenuItemClick(int position, SwipeMenu menu, int index) { ApplicationInfo item = mAppList.get(position); switch (index) { case 0: // open open(item); break; case 1: // delete //delete(item); mAppList.remove(position); mAdapter.notifyDataSetChanged(); break; } } }); // set SwipeListener mListView.setOnSwipeListener(new OnSwipeListener() { @Override public void onSwipeStart(int position) { // swipe start } @Override public void onSwipeEnd(int position) { // swipe end } }); // other setting //listView.setCloseInterpolator(new BounceInterpolator()); // test item long click mListView.setOnItemLongClickListener(new OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { Toast.makeText(getApplicationContext(), position " long click", 0).show(); return false; } });
左滑的功能是封裝好了的哈、上面貼出來的只是調用方法、更多使用方法、大家可以下載源代碼慢慢研究
(源代碼下載鏈接: http://dwtedx.com/download.html?bdkey=s/1c056pWG 密碼: ezu4)