2011-08-22 4 views
8

J'ai une grille avec un nombre dynamique de lignes et 3 colonnes. Seulement 3 lignes sont visibles à un moment donné. En grille, je peux avoir des cellules vides. Avez-vous une idée de la façon d'implémenter une fonction glisser/déposer pour la vue sur une vue d'une cellule? Je veux être capable de faire glisser des éléments dans des cellules vides.Glisser des éléments dans gridview

+0

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

+0

que je dois faire cela dans Android 2.1 –

+0

u veulent glisser-déposer des éléments dans les cellules vides – Jeetendra

Répondre

1

Ici, je souhaite ajouter un autre exemple, une référence et un extrait de code.

Glisser le code Regardons l'implémentation du contrôle et comment nous gérons les éléments qui traînent.

 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 

magasins d'événements traînés dans les articles DragEventArgs.Data.Properties valeur [ « Items »]. Vous devez remplacer cette méthode pour définir des données de glissement personnalisées si nécessaire. Lorsque l'utilisateur fait glisser un élément, nous devons afficher des indications sur l'emplacement de l'élément en cas de suppression. Le GridView standard gère ce en faisant glisser les éléments adjacents à l'écart. Nous implémenterons ce comportement exact nous-mêmes dans GridViewEx car nous devons prendre en compte les cas où GridView ne prend pas en charge la suppression.

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

poignées tomber pour tout ItemsPanel que la norme GridView ne prend pas en charge chute.

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

est demandé par les actions de l'utilisateur final.

Pour plus de détails vous pouvez consulter les liens suivants Extending GridView with Drag and Drop for Grouping and Variable Sized Items

Vous pouvez suivre le lien ci-dessous aussi Android Drag and Drop Example

Hope, cela peut vous aider.

Questions connexes