Pergunta

Eu tenho algumas imagens que gostaria de exibir na Tilelist in Flex. Minhas dimensões da tilelista são 2 colunas por n linhas. O que eu quero fazer é exibir o primeiro item (linha 1, coluna 1) vazio e não clicável e começar a exibir meus itens da linha 1, coluna 2. Isso é possível?

Também me pergunto quando crio um evento de cliques para a mesma lista de tilelas, existe uma maneira de obter um índice de elemento clicado?

Muito obrigado!
m.

Foi útil?

Solução

Boa pergunta. Tenho certeza de que alguém oferecerá uma solução mais elegante, mas uma abordagem simples pode ser simplesmente adicionar um nulo ao seu DataProvider na posição 0 e fazer com que seu itemRender lide com o nulo, exibindo algum tipo de conteúdo alternativo, ou nada em tudo.

Para extrair o índice do elemento clicado, existem várias propriedades nos objetos LISTEVENT que você pode usar-event.currentTarget.SelectedIndex (ou event.currentTarget.SelectedIndices, se você estiver usando multi-seleção), event.columnindex e. RowIndex, ou Event.itemRenderer, que você pode usar em combinação com a propriedade ItemRendeRondex da Tilelist, entre outros.

Aqui está um código de aplicativo rápido e sujo demonstrando essas duas abordagens:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:local="*">

    <mx:Script>
        <![CDATA[

            import mx.controls.Alert;
            import mx.events.ListEvent;
            import mx.collections.ArrayCollection;

            private var dpSource:Array = [
                null, 
                {src: "http://turbonerd.com/media/images/roaming/t/20091017225355.jpg"}, 
                {src: "http://turbonerd.com/media/images/roaming/t/20091017225355.jpg"},
                {src: "http://turbonerd.com/media/images/roaming/t/20091017225355.jpg"},
                {src: "http://turbonerd.com/media/images/roaming/t/20091017225355.jpg"},
                {src: "http://turbonerd.com/media/images/roaming/t/20091017225355.jpg"},
                {src: "http://turbonerd.com/media/images/roaming/t/20091017225355.jpg"},
                {src: "http://turbonerd.com/media/images/roaming/t/20091017225355.jpg"},
                {src: "http://turbonerd.com/media/images/roaming/t/20091017225355.jpg"},
                {src: "http://turbonerd.com/media/images/roaming/t/20091017225355.jpg"},
                {src: "http://turbonerd.com/media/images/roaming/t/20091017225355.jpg"},
                {src: "http://turbonerd.com/media/images/roaming/t/20091017225355.jpg"},
                {src: "http://turbonerd.com/media/images/roaming/t/20091017225355.jpg"},
                {src: "http://turbonerd.com/media/images/roaming/t/20091017225355.jpg"},
                {src: "http://turbonerd.com/media/images/roaming/t/20091017225355.jpg"},
                {src: "http://turbonerd.com/media/images/roaming/t/20091017225355.jpg"}
            ];      

            [Bindable]
            private var dp:ArrayCollection = new ArrayCollection(dpSource);

            private function myList_itemClick(event:ListEvent):void
            {
                Alert.show("You clicked the item at position (" + event.columnIndex + ", " + event.rowIndex + "), which is item " + myList.itemRendererToIndex(event.itemRenderer).toString() + " in the list.");
            } 

        ]]>
    </mx:Script>

    <mx:TileList id="myList" dataProvider="{dp}" itemClick="myList_itemClick(event)">
        <mx:itemRenderer>
            <mx:Component>
                <mx:Canvas>

                    <mx:Script>
                        <![CDATA[

                            override public function set data(value:Object):void
                            {
                                super.data = value;
                            }

                        ]]>
                    </mx:Script>

                    <mx:Image source="{data.src}" width="100" height="60" visible="{data != null}" />
                    <mx:Label text="No item!" visible="{data == null}" />

                </mx:Canvas>
            </mx:Component>
        </mx:itemRenderer>
    </mx:TileList>

</mx:Application>

Espero que ajude! Publique com perguntas se você os tiver.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top