本文和大家重点讨论一下使用Flex滚动条过程中常见的一些问题,Flex滚动条虽然很好用,但总是会出现意想不到的问题,这里向大家介绍一下,希望本文的介绍能让你有所收获。
Flex滚动条问题
Flex滚动条虽然很好用,但总是会出现意想不到的问题。前几天说了,拖动后花屏的问题,今天又发现了更恶心的问题。当你把容器的宽度调为100%后,verticalScrollbarPolicy用默认的auto。这是如果你缩放窗口会出现Flex滚动条,但问题这是就出现了,只要出现了垂直Flex滚动条,水平Flex滚动条就是被迫出现。
- viewplaincopytoclipboardprint?
- <?xmlversionxmlversion="1.0"encoding="utf-8"?>
- <mx:Applicationxmlns:mxmx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml"layout="absolute"xmlns:local="*">
- <mx:Canvaswidthmx:Canvaswidth="100%"height="700"/>
- </mx:Application>
- <?xmlversionxmlversion="1.0"encoding="utf-8"?>
- <mx:Applicationxmlns:mxmx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml"layout="absolute"xmlns:local="*">
- <mx:Canvaswidthmx:Canvaswidth="100%"height="700"/>
- </mx:Application>
这是是由于flex在计算前面的百分比时,把垂直Flex滚动条的宽度也算上了,我一开始以为是flex的bug。使其他的官方文档中写了一句很华丽的话。
- "FlexconsidersscrollbarsinitssizingcalculationsonlyifyouexplicitlysetthescrollpolicytoScrollPolicy.
- ON.So,ifyouuseanautoscrollpolicy(thedefault),thescrollbaroverlapsthebuttons.Topreventthisbehavior,
- youcansettheheightpropertyfortheHBoxcontainerorallowtheHBoxcontainertoresizebysettingapercentage-basedwidth.
- RememberthatchangingtheheightoftheHBoxcontainercausesothercomponentsinyourapplicationtomoveandresizeaccordingtotheirownsizingrules."
- --FromSizingComponentsintheFlex3help,under"UsingScrollbars"
就这样回避了这个问题。但有个办法你可以解决这个问题,重载validateSize方法
- viewplaincopytoclipboardprint?
- //InyourApplication,moduleorwhereveryouneedthisworkaround.
- overridepublicfunctionvalidateSize(recursive:Boolean=false):void{
- super.validateSize(recursive);
- if(!initialized)return;
- if(height<measuredHeight)verticalScrollPolicy=ScrollPolicy.ON;
- elseverticalScrollPolicy=ScrollPolicy.OFF;
- }
【编辑推荐】
- FlexBuilder快捷键使用说明
- Flex2.0Beta1新功能出炉
- 揭露Flex2.0的几大误区
- FlexBuilder3.0与Eclipse3.4的***结合
- 剖析Flex DataGrid分页控件的两种分页形式用法