Spark Grid заменяет MX Grid?
Я хотел использовать Spark Grid, но в то же время я понял, что для некоторых компонентов, таких как <GridItem>
,
Итак, я смешал компоненты Spark и Halo в программе, но когда я ее запустил, я получил ошибку:
"Ошибка типа: ошибка № 1034: сбой приведения типа: невозможно преобразовать spark.components::Grid@239b40a1 в mx.containers.Grid."
Программа:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
<s:Grid>
<mx:GridRow id="row1">
<mx:GridItem>
<s:Label text="Description:" paddingTop="5"/>
</mx:GridItem>
<mx:GridItem>
<s:TextArea id="descTI" width="300" height="50"/>
</mx:GridItem>
</mx:GridRow>
<mx:GridRow id="row2">
<mx:GridItem>
<s:Label text="Name:" paddingTop="5"/>
</mx:GridItem>
<mx:GridItem>
<s:TextInput id="nameTI" width="300"/>
</mx:GridItem>
</mx:GridRow>
<mx:GridRow id="row3">
<mx:GridItem>
<s:Label text="Target:" paddingTop="5"/>
</mx:GridItem>
<mx:GridItem>
<s:TextInput id="targetTI" width="300"/>
</mx:GridItem>
</mx:GridRow>
<mx:GridRow id="row5">
<mx:GridItem>
<s:Label text="Operand:" paddingTop="5" />
</mx:GridItem>
<mx:GridItem>
<mx:DataGrid id="attrDG">
<mx:columns>
<mx:DataGridColumn dataField="variable" width="150"/>
<mx:DataGridColumn dataField="level"
width="150"/>
</mx:columns>
</mx:DataGrid>
</mx:GridItem>
<mx:GridItem paddingLeft="3" colSpan="2">
<mx:DataGrid id="attrDG0">
<mx:columns>
<mx:DataGridColumn dataField="variable" width="150"/>
<mx:DataGridColumn dataField="level"
width="150"/>
</mx:columns>
</mx:DataGrid>
</mx:GridItem>
</mx:GridRow>
</s:Grid>
</s:Application>
1 ответ
Spark.components.Grid не предназначен для замены mx.containers.Grid. Скорее, его непосредственное использование является компонентом компонента spark.components.DataGrid, который предназначен для визуализации элементов в поставщике данных, который реализует IList. См. Справочную документацию по языку в Spark Grid для более подробной информации.
Вы должны продолжать использовать mx:Grid
, Вы даже можете найти примеры его использования в официальном справочнике Using Flex 4.5: контейнер макета MX Grid.
Однако я предложу наблюдение, что вы также можете посмотреть на контейнер s:Form. То, как вы выкладываете первые три строки, мне кажется более подходящим для варианта использования, для которого была разработана форма.
Наконец, s:DataGrid
предназначен для замены mx:DataGrid
, Так что вы должны убедиться, что используете это.