我在flex中有一个TileList,需要能够检测滚动条是否显示,所以我可以改变它所布置的项目的大小。
ScrollPolicy设置为auto,但我需要一个像CurrentScrollPolicy这样的变量,它会根据内容从off变为on。
由于
答案 0 :(得分:5)
感谢eBuildy,你的权利!
我创建了一个示例,它还考虑了滚动条在不需要时隐藏而不是设置为null的事实:
public class CustomTileList extends TileList
{
public function CustomTileList()
{
super();
}
/**
* Returns true if the vertical scroll bar is displayed
* @return Boolean
*
*/
public function hasVerticalScrollBar():Boolean
{
if (super.verticalScrollBar == null || super.verticalScrollBar.visible == false)
return false;
return true;
}
}
感谢您的帮助。
答案 1 :(得分:4)
或者,如果您不想覆盖列表,可以使用类似
的内容if(listInstance.mx_internal::scroll_verticalScrollBar != null){...}
干杯!
答案 2 :(得分:1)
我使用了非常简单的技巧来解决这个问题。将滚动位置设置为最大值,因为当没有滚动条时它将始终为零,如果您检查它并且它高于零,则为元素添加高度,因为必须有滚动条。
yourControl.verticalScrollPosition = yourConrol.maxVerticalScrollPosition;
for (var i:int=0; i <= yourControl.verticalScrollPosition ;i++)
{
yourControl.height = yourControl.height+16;
}
答案 3 :(得分:0)
您需要检查verticalScrollBar。如果为null则没有滚动条。 如果它不为null,则会有一个滚动条。