2017-02-06 4 views
12

私は画面を持っているアンドロイドのアプリケーションを開発していますが、それを含むドロップ:ドラッグ見ると、次のRecyclerView項目でAndroid

  1. 別のビューボタンで下図のようにカテゴリが含まれ
  2. リサイクラービューとユーザーはRecyclerViewアイテムにドラッグすることができます。ドロップした後、ユーザーはRecyclerViewアイテムデータの変更を表示します(たとえば、アイテムのアイテム数など)

このプロセスの実装方法については、リサイクラー項目にビューをドラッグする10は、次の図は、私がやりたいだけにdraglistenerを追加することにより、任意のヘルプははるかに

答えて

7

スタート高く評価され、それを

enter image description here

を行う方法は考えているかを正確に説明しますリサイクルアダプターのonCreateViewHolderにあなたの膨らんだビュー。 ACTION_DROP場合

view.setOnDragListener(new OnDragListener() { 
     @Override 
     public boolean onDrag(View view, DragEvent dragEvent) { 

      switch (dragEvent.getAction()) { 
       case DragEvent.ACTION_DRAG_STARTED: 
        // drag has started, return true to tell that you're listening to the drag 
        return true; 

       case DragEvent.ACTION_DROP: 
        // the dragged item was dropped into this view 
        Category a = items.get(getAdapterPosition()); 
        a.setText("dropped"); 
        notifyItemChanged(getAdapterPosition()); 
        return true; 
       case DragEvent.ACTION_DRAG_ENDED: 
        // the drag has ended 
        return false; 
      } 
      return false; 
     } 
    }); 

あなたは(それが再結合ケースを処理しません)モデルを変更し、notifyItemChanged()を呼び出し、または直接ビューを変更することができます。 android developers site

+1

おかげでたくさん、それはgreateのように見えますが、私は素朴な疑問を持っているドラッグの詳細については

ClipData.Item item = new ClipData.Item((CharSequence) view.getTag()); String[] mimeTypes = {ClipDescription.MIMETYPE_TEXT_PLAIN}; ClipData dragData = new ClipData(view.getTag().toString(), mimeTypes, item); view.setVisibility(View.GONE); HeptagonDragShadowBuilder myShadow = new HeptagonDragShadowBuilder(Heptagon.this, 1.1f); if (VERSION.SDK_INT >= VERSION_CODES.N) { view.startDragAndDrop(dragData, myShadow, null, 0); } else { view.startDrag(dragData, myShadow, null, 0); } 

とチェックアウトドロップ:またonCreateViewHolderであなたのViewlongClickListenerを追加し、onLongClickでドラッグを開始どのようにアダプタビューの位置を取得するには? –

+1

と 'viewholder.getAdapterPosition()' –

+0

ありがとうございます^^ –

関連する問題