Flex Mobile上的Datagrids

时间:2011-05-12 15:40:06

标签: flex actionscript air blackberry-playbook

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

  • 如果我不应该使用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

2 个答案:

答案 0 :(得分:8)

使数据网格只显示添加的数据并非不可能,但这不是我要做的,特别是对于移动应用程序。

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

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

答案 1 :(得分:0)

使用width =“100%”和height =“100%”