Apache flex datagrid Flex中的Flex align复选框

Apache flex datagrid Flex中的Flex align复选框,apache-flex,datagrid,checkbox,flex4,Apache Flex,Datagrid,Checkbox,Flex4,我使用一个项目渲染器在我的datagrid中显示一个复选框,就像 <mx:DataGridColumn headerText="Visible" dataField="visibleInd" width="48" itemRenderer="mx.controls.CheckBox" rendererIsEditor="true" editorDataField="selected" /> 这很好,但是复选框是左对齐的 我如何在中间对齐? 我用过

我使用一个项目渲染器在我的datagrid中显示一个复选框,就像

<mx:DataGridColumn headerText="Visible" dataField="visibleInd" width="48" 
itemRenderer="mx.controls.CheckBox" 
rendererIsEditor="true" 
editorDataField="selected"
/>

这很好,但是复选框是左对齐的

<>我如何在中间对齐?

我用过

            <mx:DataGridColumn headerText="Visible" dataField="visibleInd" width="48" 
                               editorDataField="selected"
                               >
            <mx:itemRenderer>
                <fx:Component>
                    <mx:Box width="100%" height="100%" 
                            horizontalAlign="center" verticalAlign="middle">
                        <mx:CheckBox selected="{data.visibleInd}" />
                    </mx:Box>
                </fx:Component>
            </mx:itemRenderer>

但是,在这种情况下,我的代码确实在中间对齐复选框,但没有保存数据提供程序中的数据。


我遗漏了什么吗?

我非常确定,将
mx:itemRenderer
更改为
mx:itemEditor
,而不是使用
,使用
(在Flex 4中)

另外,在复选框上设置
horizontalCenter=“0”

例如:

<mx:itemRenderer>
    <mx:Component>
        <mx:Canvas width="100%" height="100%">
            <mx:CheckBox selected="{data.visibleInd}" horizontalCenter="0" />
        </mx:Canvas>
    </mx:Component>
</mx:itemRenderer>


尝试将复选框宽度设置为100%

只需使用DataGridColumn的
textAlign
样式:

<mx:DataGridColumn headerText="Visible" textAlign="center">
    <mx:itemRenderer>
        <mx:Component>
            <mx:CheckBox selected="{data.visibleInd}"/>
        </mx:Component>
    </mx:itemRenderer>
</mx:DataGridColumn>

请使用下面的提示将复选框和图像放置在列的中心

<mx:CheckBox paddingLeft="20" />
<mx:Image horizontalAlign="center"/>

请参见:

<?xml version="1.0" encoding="utf-8"?>
    <s:GridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" 
                        xmlns:s="library://ns.adobe.com/flex/spark"
                        xmlns:mx="library://ns.adobe.com/flex/mx">
        <fx:Script>
            <![CDATA[
                override public function prepare(hasBeenRecycled:Boolean):void {
                    if(data != null){
                        chb.selected = data[column.dataField];
                    }
                }

                protected function chb_clickHandler(event:MouseEvent):void{
                    data[column.dataField] = !chb.selected;
                }
            ]]>
        </fx:Script>
        <s:CheckBox id="chb" click="chb_clickHandler(event)" horizontalCenter="0" verticalCenter="0"/>
    </s:GridItemRenderer>


下面我们为您提供了一些很好的答案,其中有为您工作的吗?如果是,为什么没有爱在Flex4下,这会导致显示“1”而不是复选框。诚然,“1”是居中的。但这并不是什么安慰,这没有任何作用。至少,它在Flex4下没有任何功能。