Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   DataGrid с закругленными строками (http://www.flasher.ru/forum/showthread.php?t=143967)

klafuda_klalafu 30.08.2010 15:39

DataGrid с закругленными строками
 
Вложений: 1
Хочу сделать нечто подобное :
http://www.flasher.ru/forum/attachme...1&d=1283164617
то есть что бы каждая строка датагрида была закруглена, хочется сделать это с помощью скинования.... как можно такую фишку провернуть?
вставка итемрендерера с закруглениями не катит,
было бы супер если бы кто-то подсказал способ вообще вместо того что бы указывать цвета строк указать путь до картинки с неким фоном для каждого состояния (up, down,...)

alatar 30.08.2010 16:59

Цитата:

Хочу сделать нечто подобное :
В левой крайней колонке рендерер со скруглениями слева, в правой крайней справа.
Цитата:

вставка итемрендерера с закруглениями не катит
В связи с чем?
Цитата:

было бы супер...
свой ItemRenderer со своими стилями.

klafuda_klalafu 31.08.2010 16:55

Цитата:

Сообщение от alatar (Сообщение 932359)
свой ItemRenderer со своими стилями.

Не покатит, так как рендерер будет торчать только в тех полях - которые заполнены, а те поля которые пустые - будут квадратными, к тому же: все рендереры будут все равно отображаться в квадратах а мне надо что бы каждая строка - была такой закругленый прямоугольник. И сделать это как-то можно при помощи скинования. Но как?

alatar 31.08.2010 17:02

рендерер будет "торчать" во всех полях. Вы как его делаете, что он у вас только в заполненных проявляется?

klafuda_klalafu 31.08.2010 17:28

вот пример:
Код AS1/AS2:

<?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"
                          xmlns:mxml="com.dk.mxml*"
                          minWidth="300" minHeight="100" xmlns:mxml1="com.dk.mxml.*">
        <fx:Declarations>
                <!-- Place non-visual elements (e.g., services, value objects) here -->               
        </fx:Declarations>
        <mx:DataGrid left="5" right="5" top="5" bottom="5" dataProvider="{new Array({val:1},{val:2},{val:3})}">
                <mx:columns>
                        <mx:DataGridColumn headerText="TEST">
                                <mx:itemRenderer>
                                        <fx:Component>
                                                <mxml1:RowRenderer/>
                                        </fx:Component>
                                </mx:itemRenderer>
                        </mx:DataGridColumn>
                </mx:columns>
        </mx:DataGrid>
</s:Application>

и вот рендерер
Код AS1/AS2:

<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:fx="http://ns.adobe.com/mxml/2009"
                xmlns:s="library://ns.adobe.com/flex/spark"
                xmlns:mx="library://ns.adobe.com/flex/mx" cornerRadius="{this.height/2}" dropShadowVisible="false" backgroundColor="0xff0000">
        <fx:Declarations>
                <!-- Place non-visual elements (e.g., services, value objects) here -->
        </fx:Declarations>
</mx:Canvas>

как видно из примера рендерер вставляется только в те ячейчки в которых есть дата.
А мне надо что бы каждая ячейка была стилизована. (да же не заполненая)

alatar 31.08.2010 18:41

Хмм... действительно. Краткий обзор дал следующие результаты. Прийдется наследоваться от DataGrid и переписывать метод:
Код AS3:

protected function drawRowBackground(s:Sprite, rowIndex:int, y:Number, height:Number, color:uint, dataIndex:int):void

в котором уже рисовать что угодно, или подсовывать картинку из стилей.

Добавлено через 3 минуты
Собственно, это есть в справке.
И судя по-всему, прийдется использовать scale9Slice, если подставлять свой объект, ввиду отсутсвия параметра width

Добавлено через 5 минут
Также следует обратить внимание на метод drawColumnBackground, скорее всего его тоже прийдется переписывать.

klafuda_klalafu 01.09.2010 12:10

спасибо агромное, действительно по делу!

Добавлено через 13 часов 42 минуты
нашел по теме
http://www.flasher.ru/forum/showthre...t=ItemRenderer


Часовой пояс GMT +4, время: 05:07.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.