2012-03-07 3 views
1

アイテムレンダラーがmx:DataGrid列に関連付けられています。レンダラーは、以前は列にインライン化していましたが、複数の表にまたがって再利用できるように、独自のファイルにレンダリングしました。ItemRendererがDataGrid列でサイズ変更されない

問題は、列がサイズ変更されたときにレンダラーがサイズ変更(拡大/縮小)しないことです。したがって、ユーザーが列を非常に小さくすると、レンダラーによって表示される内容がスペースを使い、他の列の上に表示されます。アイテムレンダラーのため

コード:そのレンダラーを使用して、列の

<?xml version="1.0" encoding="utf-8"?> 
<s:MXDataGridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" 
          xmlns:s="library://ns.adobe.com/flex/spark" 
          xmlns:mx="library://ns.adobe.com/flex/mx" 
          focusEnabled="true"> 
    <mx:HBox verticalScrollPolicy="auto" horizontalScrollPolicy="off" width="100%"> 
     <mx:Spacer top="0" bottom="0" width="4" /> 
     <mx:Image id="typeIcon" buttonMode="false" source="{data.type}" /> 
    </mx:HBox> 
</s:MXDataGridItemRenderer> 

コード:

<mx:DataGridColumn headerText="Type" dataField="type" itemRenderer="com.myCompany.myProject.TypeRenderer" /> 

編集

MXDataGridItemRenderwidth=100%を追加するには動作しませんでした。

+2

'MXDataGridItemRenderer'に' width = "100%" 'を追加しますか? –

+0

私はサムが言ったことを言うつもりだった。つまり、1つの列が境界を越えて別の列に移動すると、視覚的なアノマリーになる可能性があり、コーディングの量は修正されないようです。 DataGridには多くのものがあります。 – JeffryHouser

+0

おそらく、 - (インラインレンダラを使用していた)古いコードはうまくいきました... – debracey

答えて

0

私はAdobeのフレックスフォーラムで私の質問を掲示 - (。その他の変更は必要なかった)ソリューションは、外側s:MXDataGridItemRendererを削除するには、ちょうどmx:HBoxがルート制御もできるようにした

奇妙な彼のFlex Builderのアプリその最も外側のコントロールを定義するオプションはありません。s:MXDataGridItemRendererを上に置きます。

関連する問題