Adobe告诉我们不要在移动设备上使用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行,它会在底部增加空间)!
答案 0 :(得分:8)
使数据网格只显示添加的数据并非不可能,但这不是我要做的,特别是对于移动应用程序。
就个人而言,我会使用一个DataGroup(使用virtualLayout = true)包装在Scroller中设置为高度/宽度100%(这只会在数据'溢出'时显示)。 DataGroups默认设置显示所有数据。您必须为数据创建自己的项目渲染器,并可以创建自己的“标题”。
通过这样做,您将从网格中删除大量功能,但这是移动应用程序中很少使用的功能。此外,如果您创建数据组,您可以添加自己的触摸功能和手势来做事情,同时保持网格的“权重”低,以提供良好的用户体验。
答案 1 :(得分:0)
使用width =“100%”和height =“100%”