2016-10-17 29 views
2

私は、カスタムadaper(BaseAdapterを拡張)を使用するListViewを持っています。ジェスチャーを削除するためにスワイプを追加するにはどうすればよいですか?右にスワイプを追加してListViewアイテムを削除します

gmailアプリケーションが使用するのと同じ機能を使いたいです。

+0

あなたはhttps://github.com/baoyongzhang/SwipeMenuListViewまたはhttps://github.com/chthai64/のようなライブラリを使用することができますSwipeRevealLayoutまたはhttps://github.com/daimajia/AndroidSwipeLayout – AndroidRuntimeException

+0

問題は、このライブラリを実装するにはすべてを書き直す必要があります..... – Fra87

答えて

6

これを行う最も簡単な方法は、ListViewRecyclerViewに移動し、GridLayoutManagerを1つの列に使用することです。同じように見えますが、ItemTouchHelperを使用してスワイプして却下することができます。

 recyclerView = (RecyclerView) view.findViewById(R.id.recyclerView); 
    recyclerView.setLayoutManager(new GridLayoutManager(getActivity(), 1)); 

    recyclerView.setAdapter(adapter); 


    ItemTouchHelper itemTouchHelper = new ItemTouchHelper(new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT) { 
     @Override 
     public void onSwiped(RecyclerView.ViewHolder viewHolder, int swipeDir) { 
      // Remove item from backing list here 
      adapter.notifyDataSetChanged(); 
     } 
    }); 

    itemTouchHelper.attachToRecyclerView(recyclerView); 
+1

または「LinearLayoutManager」でもこのトリックを行います – ChristopheCVB

+0

これを使用するには、アダプタを正しく変更する必要があります? – Fra87

+0

はい、ListViewをRecyclerViewに変更し、アダプタの基本クラスの種類を変更してから、そのデータのHandlerを1つ以上作成する必要があります。 –

関連する問題