2011-05-12 117 views
7

Adob​​e告诉我们不要在移动设备上使用Datagrid。我正在创建一个具有更多屏幕空间的Blackberry Playbook应用程序,以潜在地显示数据表。所以出现了一些问题!Flex移动设备上的数据格

  • 如果我不应该使用DataGrid,我应该使用什么? (列表不计算,因为在我的应用程序中,我有10个表格,每个列表的列数和列宽都不同)

  • 好的,如果我必须使用Datagrid,如何设置它的大小以显示正好所有的数据?例如,一些表具有不同的长度的行,所以requestedRowCount = ' - 1'似乎不正常工作(例如参见下文)

守则

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

结果(注意高度不适合3排,它增加了底部的空间)enter image description here

回答

8

使datagrid仅显示已添加的数据并不是不可能的,但这不是我会做的,特别是对于移动应用程序。

就个人而言,我会使用包装在Scroller中的DataGroup(使用virtualLayout = true)设置为高度/宽度100%(这只会在数据“溢出”时显示)。 DataGroups默认设置显示所有数据。您必须为数据创建自己的项目渲染器,并可以创建自己的“标题”。

通过这样做,您可以从网格中删除大量功能,但这在移动应用程序中很少使用。此外,如果您创建数据组,您可以添加自己的触摸功能和手势来完成任务,同时保持网格的“重量”低,以提供良好的用户体验。

0

使用宽度=“100%”和高度=“100%”