我有一個包含圖標,標籤和工具提示的對象列表。我只想顯示圖標和標籤。工具提示應該在鼠標上可見的項目上。在flex中顯示列表項工具提示
有沒有一種方法可以實現這一點,而無需編寫我自己的鼠標懸停/懸空功能?
(請注意,數據提示當標籤被切斷,他們只能顯示一個不同的東西)
我有一個包含圖標,標籤和工具提示的對象列表。我只想顯示圖標和標籤。工具提示應該在鼠標上可見的項目上。在flex中顯示列表項工具提示
有沒有一種方法可以實現這一點,而無需編寫我自己的鼠標懸停/懸空功能?
(請注意,數據提示當標籤被切斷,他們只能顯示一個不同的東西)
顯示在List
項提示的最簡單的方法是提供dataTipField
或dataTipFunction
財產,但你似乎想要保持默認的'切標籤'行爲,那麼你可能不會逃避編寫自己的解決方案。
UPDATE: OK。在玩了一段時間的代碼後,我必須承認,讓這些提示顯示可能有點棘手,但一旦你知道該怎麼做,這實際上是微不足道的。你需要做的是設置showDataTips
財產true
和dataTipFunction
某些函數產生你的提示前例。
function(item:Object):String{
return item.tipField;
}
奇怪的事情在這裏的事實是,dataTipField
屬性設置爲「tipField」將無法正常工作方式相同上面的函數和我想知道爲什麼一樣多,但它仍然祕密給我。
更新2:其實這種行爲是不奇怪的,因爲它是在showDataTips
文件明確提到,在所有但我老了,不能看到爲我所用,你一定要原諒我我以前的聲明一樣好:)
我遇到了基本相同的情況......好,但有一些細微的區別,我使用了一個Flex mx.controls.List,並且在其上設置了一個渲染器,渲染器是複選框的擴展,I希望對工具提示進行更嚴格的控制,以便我可以選擇顯示輔助信息而不是全文(並且僅在截斷時)。我試着基於查看ToolTipManager源代碼探討了一些東西,但是使用內部註冊方法並沒有發揮作用,最終我基本上做了你所說的並且似乎沒有問題的工作。所以想知道使用自己的事件處理程序時會出現什麼問題,您仍然可以使用內置的ToolTipManager方法來顯示/隱藏,以便看起來相對乾淨。下面的代碼是從演示本身:
private var myToolTip:IToolTip;
public function FilterItemRenderer() {
addEventListener(MouseEvent.MOUSE_OVER, mouseOver_handler);
addEventListener(MouseEvent.MOUSE_OUT, mouseOut_handler);
}
private function mouseOver_handler(event:MouseEvent):void
{
//In my case using the data elements of the DP to carry the info for tooltips
if(data.hasOwnProperty("toolTip") && data.toolTip)
myToolTip = ToolTipManager.createToolTip(data.toolTip, event.stageX+5, event.stageY-5)
}
private function mouseOut_handler(event:MouseEvent):void
{
if(myToolTip)
ToolTipManager.destroyToolTip(myToolTip);
myToolTip=null;
}
override public function get toolTip():String
{
return null;
}
所以我想我的答案是不,我看不出有什麼辦法做到這一點的你的建議之外,但再一次,你可以澄清一下這個問題是?
感謝和好運, 肖恩
謝謝Shaun,我希望有一個內置的解決方案,而不是僅僅爲此寫一個自己的itemRenderer,因爲它看起來這麼簡單。 目前,我正在擴展ListItemRenderer以獲得此功能,但我希望會有東西出現... – Ofir 2010-10-14 12:00:33
感謝您嘗試,但數據提示顯示只有當我想始終顯示工具提示(我的標籤不截斷)標籤被截斷。 – Ofir 2010-10-12 15:43:34
但是,爲什麼它不能像DataGrid一樣執行,它默認情況下只在文本被截斷時顯示提示,這纔是真正的祕密。 – Opux 2015-09-02 20:08:39