2013-04-16 44 views
3

我在我的GWT WebApp中添加了一棵樹。現在當你點擊一個元素時,整個網站就會向下滾動。這通常意味着我將焦點放在點擊的對象上,所以我必須移動鼠標並再次點擊該項目。GWT Tree Change Position

當你總是在一個項目上點擊兩次時,這是非常煩人的。

也許有刪除此「自動對焦選項」的可能性,或有人有其他想法?

+0

你有什麼在你的項目?可聚焦的元素?你可以發佈你的物品的代碼? –

回答

1

也仍然可以滾動到選擇的項目,例如,從代碼隱藏在創建時,它:

tree.addItem(treeItem); 
treeItem.getElement().scrollIntoView(); 

雖然添加和後禁用可能無法按預期工作之前動態地啓用自動滾屏(setScrollOnSelectEnabled)

upd:當treeitem是啓用自動滾動的小部件時,會出現問題。點擊項目兩次滾動樹頂。純文本仍然很好。

upd2:在某些IE中,setScrollOnSelectEnabled(false)沒有效果,焦點仍然在widget item click上跳躍。原因似乎執行流終於到達Element.focus(),導致不正確的行爲(由於不正確的元素?)。它從onSelection(moveFocus = true)開始。用moveFocus = false就可以了。要禁用此功能,需要製作停用moveFocus的Tree自己的版本,並調用Element.focus()以獲取正確的元素。

但是! setScrollOnSelectEnabled(true)沒問題,沒有在物品上跳躍頂部點擊!所以解決方法是根據檢測到的瀏覽器啓用此設置。

2

GWT 2.5.1有一個新的選項來修復滾動查看行爲。 創建一個新的樹對象調用後

tree.setScrollOnSelectEnabled(false); 

禁用滾動的選擇。

請記住,在此之後,您的樹將始終設置爲(0,0)滾動位置。這意味着如果樹恰好有滾動條,它可能是一個問題(它會滾動到頂部,而不是保持焦點在選定的項目上)。

+0

確認該修補程序在gwt 2.8中工作(我從2.4-> 2.8升級了我們)。 – Jake88