0

即使策略设置为自动,我的 mx:list 总是显示滚动条。我怎样才能让它真正成为自动并在不需要时消失?这是代码:

<fx:Script>
  <![CDATA[
    private function initFoo():void 
    {
      foo.maxHorizontalScrollPosition=foo.columnWidth;
    }
  ]]>
</fx:Script>

<s:VGroup width="100%">
  <mx:List id="foo" width="100%" horizontalScrollPolicy="{ScrollPolicy.AUTO}" creationComplete="initFoo()" >
    <mx:dataProvider>
      <fx:String>text</fx:String>               
    </mx:dataProvider>
  </mx:List>
</s:VGroup>
4

1 回答 1

0

您的问题似乎是因为您正在设置maxHorizontalScrollPosition. 如果您不这样做,则列表的行为与您预期的一样(没有滚动条,除非确实需要它们)。

您还使用了列表的columnWidth属性,但文档说它只使用了 old<mx:TileList /><mx:HorizontalList />components - 将它与<mx:List />. 默认值为columnWidth50,这就是您看到滚动条的原因。

如果您将columnWidth列表中的 设置为 500,滚动条就会消失。但同样,我建议不要使用maxHorizontalScrollPositionor columnWidth

坦率地说,我不确定设置的目的maxHorizontalScrollPosition是什么。如果有滚动条,你不想让用户滚动到任何一端吗?我以前从来没有使用过这个属性,我越想越觉得Flex SDK开发者甚至创建了这样一个属性似乎有点多余——再次,为什么有滚动条但不允许用户滚动到结尾?我敢肯定有一些原因:)

最后,您最好使用 a<s:List />而不是<mx:List />-- 您正在使用 中的 Spark 组件<s:VGroup />,因此没有理由使用 MX 作为列表。如果您使用 Spark 列表,您的代码会稍有更改(其中一些属性不再相关),但您应该能够获得您所追求的相同结果。

于 2013-01-04T02:34:44.877 回答