2011-05-12 7 views
7

Adobe nos dice que no usemos Datagrid en dispositivos móviles. Estoy creando una aplicación Blackberry Playbook que tiene más espacio en la pantalla para mostrar potencialmente una tabla de datos. ¡Entonces surgen algunas preguntas!Datagrids en Flex Mobile

  • Si no debería utilizar DataGrid, ¿qué debo usar? (La lista no cuenta porque en mi aplicación tengo 10 de tablas cada una con diferentes números de columnas y anchuras de columna)

  • Ok, si tengo que usar una cuadrícula de datos, ¿cómo puedo configurar el tamaño de la misma para mostrar exactamente todos los datos? Por ejemplo, algunas tablas tienen filas de diferentes longitudes, por lo requestedRowCount = '- 1' no parecen funcionar (Consulte el siguiente ejemplo)

El Código

<s:DataGrid requestedRowCount="-1" requestedColumnCount="-1" variableRowHeight="true" styleName="dataGrid" id="partiesGrid" dataProvider="{arr1}" skinClass="skins.DataGridSkin" click="navigator.pushView(view.AssessmentInvolvementEditView)"> 
     <s:columns> 
     <s:ArrayList> 
      <s:GridColumn dataField="name" headerText="Name" width="150"/> 
      <s:GridColumn dataField="role" headerText="Role" width="150"/> 
      <s:GridColumn dataField="startdate" headerText="Start" width="100"/> 
      <s:GridColumn dataField="enddate" headerText="End" width="100"/> 
      <s:GridColumn dataField="presponsibility" headerText="Response" width="150"/> 
      <s:GridColumn dataField="pcarer" headerText="Carer" width="110"/> 
      <s:GridColumn dataField="kworker" headerText="Worker" width="110"/> 
      <s:GridColumn dataField="kteam" headerText="Team" width="110"/> 
     </s:ArrayList> 
     </s:columns> 
    </s:DataGrid>` 

El resultado (Observe cómo la altura no se ajusta a las 3 filas, agrega espacio en la parte inferior)! enter image description here

Respuesta

8

No es imposible hacer que la cuadrícula de datos muestre solo los datos que se agregan, pero no es lo que yo haría, especialmente para una aplicación móvil.

Personalmente, utilizaría un DataGroup (usando virtualLayout = true) envuelto en un Scroller configurado en altura/ancho 100% (que solo se mostraría cuando los datos 'se desborden'). La configuración predeterminada de DataGroups para mostrar todos los datos. Tendrás que crear tus propios renderizadores de elementos para los datos y puedes crear tus propios 'encabezados'.

Al hacerlo, está eliminando una gran cantidad de funcionalidad de la red, pero es algo que rara vez se utiliza en aplicaciones móviles. Además, si crea el grupo de datos, puede agregar su propia funcionalidad táctil y gestos para hacer cosas, mientras mantiene bajo el "peso" de la cuadrícula para brindar una buena experiencia al usuario.

0

use width = "100%" y height = "100%"