2011-08-22 17 views
8

Ho una griglia con un numero dinamico di righe e 3 colonne. Solo 3 righe sono visibili in un determinato momento. Nella griglia posso avere celle vuote. Hai idea di come implementare una funzionalità di trascinamento/rilascio per la vista su una vista da una cella? Voglio essere in grado di trascinare gli elementi nelle celle vuote.Trascinamento di elementi in grigliata

+0

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

+0

Ho bisogno di fare questo in Android 2.1 –

+0

si desidera trascinare gli elementi in celle vuote – Jeetendra

risposta

1

Qui desidero aggiungere un altro esempio, riferimento e alcuni frammenti di codice.

Codice di trascinamento Osserviamo l'implementazione del controllo e il modo in cui gestiamo il trascinamento di elementi.

 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 

negozi di eventi oggetti trascinati nelle DragEventArgs.Data.Properties valore [ “Elementi”]. Si dovrebbe sovrascrivere questo metodo per impostare i dati di trascinamento personalizzati se necessario. Quando l'utente trascina un oggetto, è necessario mostrare suggerimenti su dove posizionare l'oggetto, se lasciato cadere. Lo standard GridView gestisce questo facendo scorrere gli elementi adiacenti fuori strada. Implementeremo esattamente questo comportamento di in GridViewEx perché è necessario tenere conto dei casi in cui GridView non supporta l'eliminazione.

/// <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 

maniglie cadere per qualsiasi ItemsPanel che la norma GridView non non supporta cadere.

/// <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 

è richiesto dalle azioni dell'utente finale.

Per maggiori dettagli si può fare riferimento seguenti link Extending GridView with Drag and Drop for Grouping and Variable Sized Items

È possibile seguire il link qui sotto troppo Android Drag and Drop Example

Speranza, questo può aiutare.

Problemi correlati