2017-02-06 54 views
12

Bir ekrana sahip bir android uygulama geliştiriyorum bunu içerir Bırak:Drag Görünümü ve aşağıdaki RecyclerView öğe üzerinde Android'i

  1. Ayrı görünüm botton aşağıdaki şekilde gibi kategoriler içerir
  2. Recycler görünümü ve kullanıcı mümkün bir RecyclerView öğe üzerinde sürükleyin ve sonra kullanıcı (örneğin ürün kategorisinde en saymak)

Ben bu süreci nasıl uygulanacağı konusunda biraz yardıma ihtiyacım RecyclerView madde verilerine değişen gösterecektir düşmesi gerekirRecycler öğesi haline Görünüm sürüklemeye 10, Aşağıdaki şekilde yapmak istediğim ama bir draglistener ekleyerek herhangi bir yardım çok

cevap

7

Başlat takdir bunu

enter image description here

nasıl hiçbir fikrim yok tam olarak ne anlatıyor Geri dönüştürücü adaptörünüzün onCreateViewHolder'daki şişirilmiş görünümünüz. ACTION_DROP durumda

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; 
     } 
    }); 

sen (yani yeniden bağlama olaya el olmaz) modelini değiştirmek ve notifyItemChanged() arayabilir veya doğrudan görünümü değiştirmek. Ayrıca onCreateViewHolder yılında senin View bir longClickListener ekleyin ve onLongClick yılında sürükle başlatın: sürükle hakkında daha fazla bilgi için

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); 
    } 

ve çok android developers site

+1

sayesinde kontrol damla, bu azam gözüküyor ama basit bir sorum var Adaptör görüş pozisyonu nasıl alınır? Teşekkürler –

+1

with viewholder.getAdapterPosition() ' –

+0

Hoş geldiniz ^^ –