我在flex中有一個TileList,並且需要能夠檢測滾動條是否顯示,所以我可以改變它所佈置項目的大小。檢測UIComponent是否有滾動條活動
ScrollPolicy被設置爲auto,但是我需要一個像CurrentScrollPolicy這樣的變量,它將從關閉變爲開啓,具體取決於內容。
謝謝
我在flex中有一個TileList,並且需要能夠檢測滾動條是否顯示,所以我可以改變它所佈置項目的大小。檢測UIComponent是否有滾動條活動
ScrollPolicy被設置爲auto,但是我需要一個像CurrentScrollPolicy這樣的變量,它將從關閉變爲開啓,具體取決於內容。
謝謝
感謝eBuildy,您的權利!
我已經創建了一個例子也考慮到滾動條獲取隱藏在不需要的時候,而不是重新設置爲空的事實:
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;
}
}
感謝您的幫助。
您需要檢查verticalScrollBar。如果它爲null,那麼沒有滾動條。 如果它不是null,那麼就有一個滾動條。
或者,如果你不想覆蓋列表,你可以有像
if(listInstance.mx_internal::scroll_verticalScrollBar != null){...}
乾杯!
我用了很簡單的方法來解決這個問題。將滾動位置設置爲最大值,因爲如果檢查它時沒有滾動條,它將始終爲零,並且它高於零將元素添加到元素,因爲必須有滾動條。
yourControl.verticalScrollPosition = yourConrol.maxVerticalScrollPosition;
for (var i:int=0; i <= yourControl.verticalScrollPosition ;i++)
{
yourControl.height = yourControl.height+16;
}
如果super.verticalScrollBar爲null,則會拋出空引用異常。你需要'和'操作,而不是'或'。 – alxx 2011-04-21 09:56:18