在Flex Grid中更改列宽

时间:2009-06-23 19:05:53

标签: actionscript-3 flex actionscript mxml flex-mx

我正在使用mx.containers.Grid来布局一些数据,最后一列是一组复选框。 MXML代码段:

<mx:Grid width="95%" height="50%">
  <mx:GridRow id="row1">
    <mx:GridItem>
      <mx:Label id="label1" ... />
    </mx:GridItem>
    <mx:GridItem>
      <mx:Label id="textValue1" ... />
    </mx:GridItem>
    <mx:GridItem>
      <mx:CheckBox id="checkBox1" />
    </mx:GridItem>
  </mx:GridRow>
  <mx:GridRow id="row2">
    <mx:GridItem>
      <mx:Label id="label2" ... />
    </mx:GridItem>
    <mx:GridItem>
      <mx:Label id="textValue2" ... />
    </mx:GridItem>
    <mx:GridItem>
      <mx:CheckBox id="checkBox2" />
    </mx:GridItem>
  </mx:GridRow>
  <mx:GridRow id="row3">
    <mx:GridItem>
      <mx:Label id="label3" ... />
    </mx:GridItem>
    <mx:GridItem>
      <mx:Label id="textValue3" ... />
    </mx:GridItem>
    <mx:GridItem>
      <mx:CheckBox id="checkBox3" />
    </mx:GridItem>
  </mx:GridRow>
</mx:Grid>

基本上,我想要标签&amp;要对齐的文本值,但Grid组件认为合适。但是,我希望复选框是右对齐的。我已经尝试将textValues的宽度设置为100%,它什么也没做。我不想使用硬编码的像素值/画布/等,因为这很容易改变/更新很重要。

2 个答案:

答案 0 :(得分:0)

我找到了一个解决方案,但它有点像黑客。但是我会把它发布给那些遇到同样问题的人:

<mx:Grid width="95%" height="50%">
  <mx:GridRow id="row1" width="100%">
    <mx:GridItem>
      <mx:Label id="label1" ... />
    </mx:GridItem>
    <mx:GridItem>
      <mx:Label id="textValue1" ... />
    </mx:GridItem>
    <mx:GridItem>
      <mx:CheckBox id="checkBox1" width="100%" horizontalAlign="right" />
    </mx:GridItem>
  </mx:GridRow>
  <mx:GridRow id="row2" width="100%">
    <mx:GridItem>
      <mx:Label id="label2" ... />
    </mx:GridItem>
    <mx:GridItem>
      <mx:Label id="textValue2" ... />
    </mx:GridItem>
    <mx:GridItem>
      <mx:CheckBox id="checkBox2" width="100%" horizontalAlign="right"/>
    </mx:GridItem>
  </mx:GridRow>
  <mx:GridRow id="row3" width="100%">
    <mx:GridItem>
      <mx:Label id="label3" ... />
    </mx:GridItem>
    <mx:GridItem>
      <mx:Label id="textValue3" ... />
    </mx:GridItem>
    <mx:GridItem>
      <mx:CheckBox id="checkBox3" width="100%" horizontalAlign="right"/>
    </mx:GridItem>
  </mx:GridRow>
</mx:Grid>

基本上,为每个GridRow添加'width =“100%”',然后将'width =“100%”horizo​​ntalAlign =“right”'添加到您想要右对齐的每个GridItem。

答案 1 :(得分:0)

尝试将GridRow / GridItem的宽度设置为100%。