2011-08-22 15 views
8

Tengo una cuadrícula con un número dinámico de filas y 3 columnas. Solo 3 filas son visibles en un momento determinado. En la grilla puedo tener celdas vacías. ¿Tiene alguna idea de cómo implementar una característica de arrastrar y soltar para la vista en una vista desde una celda? Quiero ser capaz de arrastrar elementos en celdas vacías.Arrastrando elementos en la vista de cuadrícula

+0

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

+0

tengo que hacer esto en Android 2.1 –

+0

u quieren arrastrar y soltar elementos en las casillas vacías – Jeetendra

Respuesta

1

Aquí deseo agregar un ejemplo más, referencia y algún fragmento de código.

Código de arrastre Miremos la implementación del control y cómo manejamos los elementos de arrastre.

 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 

tiendas de artículos de eventos arrastrados a los DragEventArgs.Data.Properties [ “Elementos”] Valor. Debería anular este método para establecer datos de arrastre personalizados si es necesario. Cuando el usuario arrastra un elemento, tenemos que mostrar sugerencias sobre dónde se colocará el elemento si se cae. El GridView estándar maneja este deslizando elementos adyacentes fuera del camino. Implementaremos este comportamiento exacto en GridViewEx porque necesitamos dar cuenta de los casos donde GridView no admite caídas.

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

mangos cayendo por cualquier ItemsPanel que la norma no GridView no soporta caídas.

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

es solicitada por las acciones del usuario final.

Para más detalles puede consultar siguientes enlaces Extending GridView with Drag and Drop for Grouping and Variable Sized Items

Usted puede seguir el siguiente enlace demasiado Android Drag and Drop Example

Esperanza, esto puede ayudarle.

Cuestiones relacionadas