Цвет фона ListItemRenderer - PullRequest
       6

Цвет фона ListItemRenderer

1 голос
/ 12 октября 2009

Используя flex4, у меня есть список с средством визуализации элементов:

<mx:List id="queueView" dataProvider="{presenter.queue.items}">
  <mx:itemRenderer>
    <fx:Component>
      <mx:VBox>
        <mx:Label text="{data.name}"/>
        <mx:Label text="{data.artist.name}"/>
      </mx:VBox>
    </fx:Component>
  </mx:itemRenderer>
</mx:List>

У меня есть чередующиеся цвета в списке:

#queueView
{
  alternating-item-colors: red, yellow;
}

но элементы списка всегда отображаются с белым фоном (при правильном отображении цветов он отображается правильно).

Если я установлю contentBackgroundColor = "red" на itemRenderer, каждый элемент будет красным. Компилятор не принимает прозрачный.

Как я могу заставить itemRenderer уважать чередующиеся цвета списка?

1 Ответ

1 голос
/ 16 октября 2009

Это, кажется, работает нормально для меня. Вот мой код:

<?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/halo" minWidth="1024" minHeight="768" xmlns:components="components.*">
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>

    <fx:Script>
        <![CDATA[
            import mx.collections.ArrayCollection;

            [Bindable]
            public var items:ArrayCollection = new ArrayCollection([{name:"foo",value:"bar"},
                                                                    {name:"foo",value:"bar"},
                                                                    {name:"foo",value:"bar"},
                                                                    {name:"foo",value:"bar"},
                                                                    {name:"foo",value:"bar"},
                                                                    {name:"foo",value:"bar"},
                                                                    {name:"foo",value:"bar"},
                                                                    {name:"foo",value:"bar"}]);

        ]]>
    </fx:Script>


    <fx:Style>
        @namespace s "library://ns.adobe.com/flex/spark";
        @namespace mx "library://ns.adobe.com/flex/halo";
        @namespace components "components.*";

        #queueView
        {
            alternating-item-colors: red, yellow;   
        }
    </fx:Style>

    <mx:List id="queueView" dataProvider="{items}" width="200">
        <mx:itemRenderer>
            <fx:Component>
                <mx:VBox>
                    <mx:Label text="{data.name}"/>
                    <mx:Label text="{data.value}"/>
                </mx:VBox>
            </fx:Component>
        </mx:itemRenderer>
    </mx:List>    
</s:Application>

А вот и результат:

result

Какую сборку вы используете? Я запускаю последнюю бета-версию, которая вышла за последние несколько недель. Точная сборка 4.0.0.253292. Вы можете попробовать обновить его до последней сборки, если вы еще этого не сделали, а также попытаться очистить свой проект. Также убедитесь, что ваш браузер не кэширует swf, что иногда происходит, когда размер файла не изменяется кардинально.

Пожалуйста, дайте мне знать, если я что-то пропустил. Но ваш код работает нормально.

...