我的Flex 4.6網絡應用程序的用戶很少抱怨,它右下角的mx.controls.PopUpButton有時在之下打開一個列表,因此它不可用(我無法重現我自己 - 他們的Flash播放器和/或字體大小設置的可能是一個不吉利的組合)如何確保PopUp始終顯示在PopUpButton之上?帶有測試用例和屏幕截圖
我怎麼能保證,即彈出組件(對我來說這是一個spark.components.List)始終打開以上 PopUpButton?
我懷疑,我應該創建一個基於mx.skins.halo.PopUpButtonSkin的皮膚,並將其分配給我的PopUpButton?我可能應該使用PopUpPosition.ABOVE常量和PopUpAnchor一起使用?
但我不知道如何把它放在一起 - 任何人都可以請分享一些指示?
我已經準備了一個屏幕截圖和簡單Text.mxml:
<?xml version="1.0" encoding="utf-8"?>
<s:Application
xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
creationComplete="init()">
<fx:Script>
<![CDATA[
import mx.events.FlexEvent;
import mx.collections.ArrayCollection;
import spark.components.List;
[Bindable]
private var _data:ArrayCollection = new ArrayCollection();
[Bindable]
private var _list:List = new List();
public function init():void {
_data.addItem({label: "One"});
_data.addItem({label: "Tow"});
_data.addItem({label: "Three"});
_data.addItem({label: "Four"});
_data.addItem({label: "Five"});
_list.dataProvider = _data;
_list.setStyle('fontSize', 36);
}
]]>
</fx:Script>
<mx:PopUpButton right="10" bottom="10" fontSize="24" popUp="{_list}"/>
</s:Application>
UPDATE:
我已經西蒙·貝利MX ComboBox Open Direction Bug - Alternative Solution,並且找到一種解決方案工作,但不幸的是,當主(不是箭頭)按鈕被點擊時,阻止我調度我的自定義事件。
而且我已經看了the PopUpButton.as source code,不知是否也許列表的高度爲0,而被檢查的話有:
private function displayPopUp(show:Boolean):void
{
......
// XXX I suspect the _popUp.height below is 0
// XXX for the users having the trouble
if (show)
{
if (point.y + _popUp.height > screen.bottom &&
point.y > (screen.top + height + _popUp.height))
{
// PopUp will go below the bottom of the stage
// and be clipped. Instead, have it grow up.
point.y -= (unscaledHeight + _popUp.height + 2*popUpGap);
initY = -_popUp.height;
}
我仍然無法重現自己的錯誤,我的用戶AREN」 t非常有幫助(大多數老年人,玩my card game)。我搜索了in Adobe JIRA,但找不到這樣的錯誤。
我想知道,如果有一種方法來短路該方法來強制打開PopUpButton上方的PopUp。
或者我應該把_list到一些容器......
我選擇了一個值後,我不能點擊DropDownList(「推」它像一個按鈕 - 發送一個事件) - 或者我可以嗎? – 2012-04-02 19:31:11
不,我不這麼認爲。你是通過點擊右側「選擇」,然後點擊左側「推」?這似乎讓我感到困惑。但是,列表中的實際文字可能會使它更明顯地表現出它的工作原理。 – joshtynjala 2012-04-02 23:52:03
是的,這正是我使用它的方式。我可以通過「覆蓋mx_internal函數displayPopUp()」來實現任何功能嗎? – 2012-04-03 12:36:10