2011-05-12 10 views
7

Adobe mówi nam, aby nie używać Datagrid na urządzeniach mobilnych. Tworzę aplikację BlackBerry Playbook, która ma więcej miejsca na ekranie, aby potencjalnie wyświetlić tabelę danych. Tak więc pojawia się kilka pytań!Datagrids na Flex Mobile

  • Jeśli nie powinienem używać DataGrid, co powinienem użyć? (Lista nie jest liczona, ponieważ w mojej aplikacji mam 10-ciu tabel z różnymi numerami kolumn i szerokości kolumn)

  • Ok, jeśli muszę użyć Datagridu, jak mogę ustawić jego rozmiar, aby pokazać dokładnie wszystkie dane? Na przykład, niektóre tabele mają rzędy różnych długościach, więc requestedRowCount = '- 1' nie wydają się działać (patrz przykład poniżej)

Kodeks

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

Wynik (zwróć uwagę, że wysokość nie pasuje do 3 rzędów, dodaje miejsca na dole)! enter image description here

Odpowiedz

8

Wykonanie datagridu nie jest możliwe tylko z dodanymi danymi, ale nie jest to tym, co bym zrobił, szczególnie w przypadku aplikacji mobilnej.

Osobiście użyłbym DataGroup (przy użyciu virtualLayout = true) owiniętego w zestaw Scroller do wysokości/szerokości 100% (który byłby wyświetlany tylko wtedy, gdy dane "przepełnią się"). Domyślne ustawienia DataGroups, aby wyświetlić wszystkie dane. Będziesz musiał stworzyć własne renderery przedmiotów dla danych i stworzyć własne "nagłówki".

W ten sposób usuwasz wiele funkcji z sieci, ale jest to coś, co rzadko jest używane w aplikacjach mobilnych. Dodatkowo, jeśli utworzysz datagroup, możesz dodać własną funkcję dotykową i gesty do robienia rzeczy, utrzymując niską wagę siatki, aby zapewnić dobre wrażenia użytkownika.

0

użyj szerokości = "100%" i wysokości = "100%"