Datagrids на Flex Mobile

#apache-flex #actionscript #air #blackberry-playbook

#apache-flex #actionscript #air #blackberry-сборник пьес

Вопрос:

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 строкам, это добавляет места внизу)!введите описание изображения здесь

Ответ №1:

Нет ничего невозможного в том, чтобы заставить datagrid отображать только добавленные данные, но это не то, что я бы сделал, особенно для мобильного приложения.

Лично я бы использовал группу данных (используя virtualLayout = true), обернутую в скроллер, для которого установлено значение height / width 100% (которое будет отображаться только при «переполнении» данных). Настройки групп данных по умолчанию для отображения всех данных. Вам нужно будет создать свои собственные средства визуализации элементов для данных, и вы можете создавать свои собственные «заголовки».

Делая это, вы удаляете из сетки множество функциональных возможностей, но это то, что редко используется в мобильных приложениях. Кроме того, если вы создадите datagroup, вы сможете добавить свои собственные сенсорные функции и жесты для выполнения действий, сохраняя при этом «вес» сетки на низком уровне для обеспечения хорошего пользовательского интерфейса.

Ответ №2:

используйте width =»100%» и height =»100%»