zoukankan      html  css  js  c++  java
  • Displaying icons in a Flex List control

    The following example demonstrates how to use embedded images in a List control so that each item in the list displays a little icon based on a certain property in the data provider. You’ll also notice that we set the textIndent style to give the label a bit more padding from the icon. Finally, we create three non-interactive Button controls beneath the list as a sort of “legend” for the icons
    <?xml version="1.0" encoding="utf-8"?>
    <!-- http://blog.flexexamples.com/2007/08/17/displaying-icons-in-a-flex-list-control/ -->
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
            layout
    ="vertical"
            verticalAlign
    ="middle"
            backgroundColor
    ="white">

        
    <mx:Script>
            
    <![CDATA[
                [Bindable]
                [Embed(source="assets/bulletCheck.png")]
                public var BulletCheck:Class;

                [Bindable]
                [Embed(source="assets/bulletWarning.png")]
                public var BulletWarning:Class;

                [Bindable]
                [Embed(source="assets/bulletCritical.png")]
                public var BulletCritical:Class;
            
    ]]>
        
    </mx:Script>

        
    <mx:List id="list"
                labelField
    ="label"
                iconField
    ="icon"
                rowCount
    ="4"
                width
    ="200"
                themeColor
    ="haloSilver"
                textIndent
    ="5">
            
    <mx:dataProvider>
                
    <mx:Array>
                    
    <mx:Object label="Item 1" icon="BulletWarning" />
                    
    <mx:Object label="Item 2" icon="BulletCritical" />
                    
    <mx:Object label="Item 3" icon="BulletCritical" />
                    
    <mx:Object label="Item 4" icon="BulletCheck" />
                    
    <mx:Object label="Item 5" icon="BulletWarning" />
                    
    <mx:Object label="Item 6" icon="BulletCheck" />
                    
    <mx:Object label="Item 7" icon="BulletCheck" />
                    
    <mx:Object label="Item 8" icon="BulletCritical" />
                
    </mx:Array>
            
    </mx:dataProvider>
        
    </mx:List>

        
    <mx:HBox>
            
    <mx:Button label="Success"
                    icon
    ="{BulletCheck}"
                    mouseEnabled
    ="false"
                    skin
    ="{null}" />

            
    <mx:Button label="Warning"
                    icon
    ="{BulletWarning}"
                    mouseEnabled
    ="false"
                    skin
    ="{null}" />

            
    <mx:Button label="Critical"
                    icon
    ="{BulletCritical}"
                    mouseEnabled
    ="false"
                    skin
    ="{null}" />
        
    </mx:HBox>

    </mx:Application>


    You can also add icons to a List control using the iconFunction property, as seen in the following example. Note that the list’s data provider doesn’t contain a column with the name of the specific icon to use, the icon is being determined by a user-defined function which calculates the icon from the “data” property in data provider.

    <?xml version="1.0" encoding="utf-8"?>
    <!-- http://blog.flexexamples.com/2007/08/17/displaying-icons-in-a-flex-list-control/ -->
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
            layout
    ="vertical"
            verticalAlign
    ="middle"
            backgroundColor
    ="white">

        
    <mx:Script>
            
    <![CDATA[
                [Bindable]
                [Embed(source="assets/bulletCheck.png")]
                public var BulletCheck:Class;

                [Bindable]
                [Embed(source="assets/bulletWarning.png")]
                public var BulletWarning:Class;

                [Bindable]
                [Embed(source="assets/bulletCritical.png")]
                public var BulletCritical:Class;

                private function list_iconFunc(item:Object):Class {
                    var iconClass:Class;

                    if (item.data >= 8) {
                        iconClass = BulletCheck;
                    } else if (item.data >= 5) {
                        iconClass = BulletWarning;
                    } else {
                        iconClass = BulletCritical;
                    }

                    return iconClass;
                }
            
    ]]>
        
    </mx:Script>

        
    <mx:List id="list"
                labelField
    ="label"
                iconFunction
    ="list_iconFunc"
                rowCount
    ="4"
                width
    ="200"
                themeColor
    ="haloSilver"
                textIndent
    ="5">
            
    <mx:dataProvider>
                
    <mx:Array>
                    
    <mx:Object label="Item 1" data="7" />
                    
    <mx:Object label="Item 2" data="3" />
                    
    <mx:Object label="Item 3" data="1" />
                    
    <mx:Object label="Item 4" data="8" />
                    
    <mx:Object label="Item 5" data="5" />
                    
    <mx:Object label="Item 6" data="8" />
                    
    <mx:Object label="Item 7" data="9" />
                    
    <mx:Object label="Item 8" data="2" />
                
    </mx:Array>
            
    </mx:dataProvider>
        
    </mx:List>

        
    <mx:HBox>
            
    <mx:Button label="Success"
                    icon
    ="{BulletCheck}"
                    mouseEnabled
    ="false"
                    skin
    ="{null}" />

            
    <mx:Button label="Warning"
                    icon
    ="{BulletWarning}"
                    mouseEnabled
    ="false"
                    skin
    ="{null}" />

            
    <mx:Button label="Critical"
                    icon
    ="{BulletCritical}"
                    mouseEnabled
    ="false"
                    skin
    ="{null}" />
        
    </mx:HBox>

    </mx:Application>
  • 相关阅读:
    array_map()与array_shift()搭配使用 PK array_column()函数
    Educational Codeforces Round 8 D. Magic Numbers
    hdu 1171 Big Event in HDU
    hdu 2844 poj 1742 Coins
    hdu 3591 The trouble of Xiaoqian
    hdu 2079 选课时间
    hdu 2191 珍惜现在,感恩生活 多重背包入门题
    hdu 5429 Geometric Progression 高精度浮点数(java版本)
    【BZOJ】1002: [FJOI2007]轮状病毒 递推+高精度
    hdu::1002 A + B Problem II
  • 原文地址:https://www.cnblogs.com/taobataoma/p/1035784.html
Copyright © 2011-2022 走看看