Apache flex Flex Mobile上的数据网格

Apache flex Flex Mobile上的数据网格,apache-flex,actionscript,air,blackberry-playbook,Apache Flex,Actionscript,Air,Blackberry Playbook,Adobe告诉我们不要在移动设备上使用。我正在创建一个Blackberry Playbook应用程序,它有更多的屏幕空间来显示数据表。因此出现了几个问题 如果我不应该使用DataGrid,我应该使用什么?(列表不算数,因为在我的应用程序中,我有10个表,每个表都有不同的列数和列宽) 好的,如果我必须使用Datagrid,我如何设置它的大小以精确显示所有数据?例如,某些表具有不同长度的行,因此requestedRowCount='-1'似乎不起作用(请参见下面的示例) 代码 <s

Adobe告诉我们不要在移动设备上使用。我正在创建一个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行不符,它在底部增加了空间)

让datagrid只显示添加的数据并非不可能,但我不会这么做,尤其是对于移动应用程序

就个人而言,我会使用一个数据组(使用virtualLayout=true)包装在一个滚动条中,设置为height/width 100%(只有在数据“溢出”时才会显示)。数据组默认设置显示所有数据。您必须为数据创建自己的项目呈现器,并可以创建自己的“标题”

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

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