2011-08-22 15 views
8

Mam siatkę z dynamiczną liczbą wierszy i 3 kolumnami. W danym momencie widoczne są tylko 3 rzędy. W siatce mogę mieć puste komórki. Czy masz pojęcie, jak zaimplementować funkcję przeciągnij/upuść dla widoku w widoku z komórki? Chcę móc przeciągać elementy w pustych komórkach.Przeciąganie elementów w widoku siatki

+0

http://developer.android.com/guide/topics/ui/drag-drop.html –

+0

Potrzebuję zrobić to w Androidzie 2.1 –

+0

Chcesz przeciągać i upuszczać elementy w pustych komórkach – Jeetendra

Odpowiedz

1

Tutaj chciałbym dodać jeszcze jeden przykład, odnośnik i fragment kodu.

Przeciąganie kodu Spójrzmy na implementację sterowania i sposób obsługi przeciągania elementów.

 public class GridViewEx : GridView 
     { 
      /// <summary> 
      /// Initializes a new instance of the <see cref="GridViewEx"/> control. 
      /// </summary> 
      public GridViewEx() 
      { 
       // see attached sample 
      } 

      private void GridViewEx_DragItemsStarting(object sender, DragItemsStartingEventArgs e) 
      { 
       // see attached sample 
      } 

      /// <summary> 
      /// Stores dragged items into DragEventArgs.Data.Properties["Items"] value. 
      /// Override this method to set custom drag data if you need to. 
      /// </summary> 
      protected virtual void OnDragStarting(DragItemsStartingEventArgs e) 
      { 
       // see attached sample 
      } 
    The control has several fields which store the indices of several active items during the drag/drop process. The OnDragStarting 

sklepy zdarzeń przeciągać elementy do DragEventArgs.Data.Properties [ „Elementy”] wartości. Jeśli chcesz, możesz zastąpić tę metodę , aby ustawić niestandardowe dane przeciągania. Gdy użytkownik przeciąga przedmiot, musimy pokazać wskazówki, gdzie ten przedmiot zostanie umieszczony po jego upuszczeniu. Standardowy GridView obsługuje to , przesuwając sąsiednie przedmioty na uboczu. Będziemy implementować to dokładnie zachowanie w GridViewEx, ponieważ musimy uwzględnić przypadki , w których GridView nie obsługuje upuszczania.

/// <summary> 
    /// Shows reoder hints while custom dragging. 
    /// </summary> 
    protected override void OnDragOver(DragEventArgs e) 
    { 
     // see attached sample } 

    private int GetDragOverIndex(DragEventArgs e) 
    { 
     // see attached sample 
    } 


Dropping Code 
Next, let’s look at the code that handles dropping. 
We have to override GridView.OnDrop method which is called every time when an end-user drops an item to the new location. Our override 

uchwyty spada do dowolnego ItemsPanel że średnia GridView nie nie obsługują spada.

/// <summary> 
/// Handles drag and drop for cases when it is not supported by the Windows.UI.Xaml.Controls.GridView control 
/// </summary> 
protected override async void OnDrop(DragEventArgs e) 
{ 
    // see attached sample 
} 
The OnDrop method includes logic for moving items from one group to another when grouping is enabled, and for new group creation if it 

jest wymagana przez działania użytkownika końcowego.

Więcej szczegółów można odnieść następujące łącza Extending GridView with Drag and Drop for Grouping and Variable Sized Items

Możesz śledzić poniższego linku zbyt Android Drag and Drop Example

nadzieję, że to może pomóc.

Powiązane problemy