gpt4 book ai didi

gwt - 在 GWT 中设置 ScrollTop 的正确时机

转载 作者:行者123 更新时间:2023-12-02 05:29:41 26 4
gpt4 key购买 nike

我在让 setScrollTop 在 GWT 中工作时遇到问题。基本上,我试图在构建 View 后立即设置自定义滚动位置(以专注于特定的所需元素)。它似乎不起作用,因为我没有在正确的时间设置它(并且 UI 可能仍在渲染/构造中等)。

设置如下。

  • 我有一个小部件,它的启动方法如下所示:

    public void start(AcceptsOneWidget widget, EventBus eventBus) {

    widget.setWidget(view);s
    Runnable onLoadCallback = new Runnable() {
    public void run() {
    initView();
    }
    };

    VisualizationUtils.loadVisualizationApi(onLoadCallback, LineChart.PACKAGE);
    }
  • 在 initView 面板内,我动态构建了一个包含一些图表的 View (通过向服务器发出请求,等待答案到来,然后根据服务器的答案呈现 UI)。

  • 在服务器响应到达后,以及在我构建完 UI 后,我尝试像这样设置滚动位置:

    view.getContainerPanel().getElement().setScrollTop(2000);
  • 这似乎完全没有任何效果。但是,如果我离开这个 View ,稍后再回到它,它确实有效(大概是因为它已经被初始化或什么?)

问题是:调用 setScrollTop 的正确时机是什么时候?我尝试从相应的 View 中覆盖一些方法,但它似乎不起作用。

最佳答案

在 initView() 之后使用调度程序:

Scheduler.get().scheduleDeferred(new ScheduledCommand() {

@Override
public void execute() {
view.getContainerPanel().getElement().setScrollTop(2000);
}
});

解释:

您的程序不知道浏览器渲染 View 需要多长时间。这就是创建 Scheduler.scheduleDeferred() 方法的目的。它告诉您的程序等待,直到浏览器完成它正在做的事情并准备好执行下一个任务。

关于gwt - 在 GWT 中设置 ScrollTop 的正确时机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12585130/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com