如果我嘗試對不在視圖中的列進行排序(我需要向右滾動以查看它) 然後該列進行排序,但表格會向左滾動,(我排序的列是拿出來看一次)GXT 3 - 排序會導致網格水平滾動
人們可以在GXT展示的Basic Gid試試這個: 就做出了較大的列的寬度,使水平滾動條顯示出來,然後嘗試在滾動表的結尾和排序。
如何解決這個問題?
感謝
如果我嘗試對不在視圖中的列進行排序(我需要向右滾動以查看它) 然後該列進行排序,但表格會向左滾動,(我排序的列是拿出來看一次)GXT 3 - 排序會導致網格水平滾動
人們可以在GXT展示的Basic Gid試試這個: 就做出了較大的列的寬度,使水平滾動條顯示出來,然後嘗試在滾動表的結尾和排序。
如何解決這個問題?
感謝
這是我如何解決它: 覆蓋的GridView
onDataChanged
並設置preventScrollToTopOnRefresh
爲true排序前,然後將其設置回不管它是什麼。我想知道爲什麼這不是默認行爲。
final GroupSummaryView<Row> view = new GroupSummaryView<Row>()
{
protected void onDataChanged(StoreDataChangeEvent<Row> se)
{
boolean b = preventScrollToTopOnRefresh;
preventScrollToTopOnRefresh = true;
super.onDataChanged(se);
preventScrollToTopOnRefresh = b;
}
};
_table.setView(view);
有沒有內置的功能,以防止這種行爲,所以你要自己編寫。你只需要滾動狀態存儲分揀之前和之後的恢復:
// save scroll state
final int scrollTop = getView().getScroller().getScrollTop();
final int scrollLeft = getView().getScroller().getScrollLeft();
// restore scroll state
getView().getScroller().setScrollTop(scrollTop);
getView().getScroller().setScrollLeft(scrollLeft);
@Darek凱:非常感謝。從EditorTreeGrid
中選擇數值更改選項時,我遇到了向下滾動的問題。你的建議對我有用。以下是我所做的和爲我工作的:
final int scrollTop = editorTreeGrid.getView().getScroller().getScrollTop();
final int scrollLeft = ditorTreeGrid.getView().getScroller().getScrollLeft();
editorTreeGrid.getView().refresh(true);
editorTreeGrid.getView().getScroller().setScrollTop(scrollTop);
editorTreeGrid.getView().getScroller().setScrollLeft(scrollLeft);
問題在於它導致網格來回滾動。 – Spiff 2014-10-23 15:52:45
不幸的是,這是真的。我必須嘗試你的解決方案,目前看起來不錯;) – 2014-10-24 11:29:21