Я создаю ItemRenderer, чтобы отобразить список рабочих мест, которые компания может захотеть выполнить в здании. Затем пользователь может щелкнуть по заданию, чтобы выбрать его, и использовать кнопки добавления/редактирования/удаления в родительском представлении.Flex Mobile - Highlight Selected Row in Item Renderer
Как бы выделить выбранную HGroup в моем s: ItemRenderer, чтобы пользователь мог видеть, какое задание выбрано в данный момент?
<s:Scroller width="100%" height="70%">
<s:DataGroup width="100%" height="100%"
horizontalCenter="0" verticalCenter="0"
dataProvider="{Session.EXISTING_JOBS}"
>
<s:layout >
<s:VerticalLayout />
</s:layout>
<s:itemRenderer>
<fx:Component>
<s:ItemRenderer verticalCenter="0" horizontalCenter="0" width="100%">
<fx:Script>
<![CDATA[
protected function jobSelect_clickHandler(event:MouseEvent):void
{
// highlight the HGroup here
if(this.selected == true){
jobRow.setStyle('contentBackgroundColor',0x000000);
} else {
jobRow.setStyle('contentBackgroundColor',0xFFFFFF);
}
}
]]>
</fx:Script>
<s:states>
<s:State name="normal"/>
</s:states>
<s:HGroup id="jobRow"
width="100%" height="50"
verticalAlign="middle"
click="jobSelect_clickHandler(event)" >
<s:Label text="{data.id}"
width="15%" height="50"
verticalAlign="middle"
verticalCenter="0"/>
<s:Label text="{data.company}"
width="35%" height="50"
verticalAlign="middle"
verticalCenter="0"/>
<s:Label text="{data.building}"
width="35%" height="50"
verticalAlign="middle"
verticalCenter="0"/>
<s:Label text="{data.assets}"
width="15%" height="50"
verticalAlign="middle"
verticalCenter="0"/>
</s:HGroup>
</s:ItemRenderer>
</fx:Component>
</s:itemRenderer>
</s:DataGroup>
</s:Scroller>
Это не имеет никакого эффекта. Я ничего не теряю при настройке рендеринга элемента? Теперь я переместил его в один файл mxml, чтобы упростить манипулирование данными. Новый код обновлен. –
Мне просто нужно было установить «selected» в true, прежде чем выделять группу. Любая идея о том, как отменить выбор всех остальных одновременно, можно выбрать только один? –
Вы должны убедиться, что ваш itemRenderer отвечает на событие dataChange, чтобы обновить его состояние на основе выбора списка. Это должно обновить состояние, когда выбран элемент и когда элемент не выбран. – JeffryHouser