2017-06-13 129 views
0

我一直在試圖做幾件事情,但我做不到。FileSystemTree itemRenderer

1 - 我一直對皮膚mx:FileSystemTree進行皮膚水平顯示數據,我認爲它幾乎是不可能的,任何人都有想法如何使它?

2 - 我正在測試的第二件事是添加一個itemRenderer到FileSystemTree想要添加一對botton(添加和刪除,至此我已經工作)。一切我試過到目前爲止被賦予了同樣的錯誤: TypeError: Error #1034: Type Coercion failed: cannot convert SKins::[email protected] to mx.controls.listClasses.IListItemRenderer.

<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
         xmlns:s="library://ns.adobe.com/flex/spark" 
         xmlns:mx="library://ns.adobe.com/flex/mx" 
         width="750" height="500"> 


    <s:layout> 
     <s:VerticalLayout/> 
    </s:layout> 
    <s:VGroup width="607" height="134"> 
     <s:HGroup width="607" height="68"> 
      <s:Button label="Button"/> 
      <s:Button label="Button"/> 
     </s:HGroup> 
     <s:TextInput width="600"/> 
    </s:VGroup> 
    <mx:HDividedBox> 
     <mx:FileSystemTree id="tree" width="615" height="480" allowMultipleSelection="true" 
          borderVisible="false" defaultLeafIcon="@Embed('../assets/folder.png')" 
          directory="{new File(raiz)}" dragEnabled="true" dropEnabled="true" 
          folderClosedIcon="@Embed('../assets/folder.png')" 
          folderOpenIcon="@Embed('../assets/openFolder.png')" fontSize="45" 
          fontStyle="normal" fontWeight="normal" iconFunction="selectIcon" 
          itemRenderer="SKins.FileSystemItemRenderer" showIcons="true" 
          textAlign="left" textDecoration="none" verticalAlign="middle"/>  

    </mx:HDividedBox> 

</s:WindowedApplication> 

這就是代碼至極是要告訴樹。

<?xml version="1.0" encoding="utf-8"?> 
<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" 
       xmlns:s="library://ns.adobe.com/flex/spark" 
       xmlns:mx="library://ns.adobe.com/flex/mx" 
       autoDrawBackground="true"> 

    <s:Label text="{data}"/> 

</s:ItemRenderer> 

我試着用一個簡單的渲染器收回錯誤#1034。

<?xml version="1.0" encoding="utf-8"?> 
<!-- http://blog.flexexamples.com/2010/04/08/creating-an-alternating-item-renderer-in-a-spark-list-control-in-flex-4/ --> 

<s:MXTreeItemRenderer name="IListItemRenderer" 
       xmlns:fx="http://ns.adobe.com/mxml/2009" 
       xmlns:s="library://ns.adobe.com/flex/spark" 
       xmlns:mx="library://ns.adobe.com/flex/mx"> 

    <s:HGroup id="hGr" left="4" right="4" top="4" bottom="4"> 
     <s:RichText id="lbl" text="({itemIndex}) {data.label}" width="100%" /> 
     <mx:Image id="img" source="{data.img}" toolTip="{data.img}" width="100" height="67" /> 
    </s:HGroup> 

</s:MXTreeItemRenderer> 

我也嘗試過其他渲染器,但結果相同。

我希望有人能幫助我。 謝謝。

回答

0

不能確定水平顯示數據,但關於itemrenderer的第二點對我來說工作正常。這裏是工作的代碼

<?xml version="1.0" encoding="utf-8"?> 
<s:MXTreeItemRenderer 
        xmlns:fx="http://ns.adobe.com/mxml/2009" 
        xmlns:s="library://ns.adobe.com/flex/spark" 
        xmlns:mx="library://ns.adobe.com/flex/mx"> 

<s:HGroup id="hGr" left="4" right="4" top="4" bottom="4"> 
    <s:Rect id="indentationSpacer" 
      width="{treeListData.indent}" height="22" 
      alpha="0"> 
     <s:fill> 
      <s:SolidColor color="0xFFFFFF" /> 
     </s:fill> 
    </s:Rect> 
    <s:Group id="disclosureGroup"> 
     <s:BitmapImage source="{treeListData.disclosureIcon}" 
         width="16" height="16" 
         visible="{treeListData.hasChildren}" /> 
    </s:Group> 
    <s:BitmapImage source="{treeListData.icon}" 
        width="16" height="16"/> 
    <s:RichText id="lbl" text="{data.nativePath}" toolTip="{data.nativePath}" width="100%" maxDisplayedLines="1" /> 

    <s:Button label="Button"/> 
    <s:Button label="Button"/> 
</s:HGroup> 

+0

謝謝你的男人!!!你從頭痛救我!我不知道爲什麼它沒有工作,但你的解決方案是偉大的!我只是將RichText更改爲Label,導致RichText未顯示,再次感謝。 – Jaime