1

现在我可以像这样调用presenter在第一时间更新UI:

@Override
public void onNewViewStateInstance() {
    presenter.initialize();
}

Presenter

@Override
public void initialize() {
    getView().setColor(projectManager.getProject().getColor());
    getView().setEditMenuItemEnabled(projectManager.getProject().isOpened());
}

而且我总是必须包装代码Handler.post以避免在膨胀之前执行此代码。 Views

@Override
public void setEditMenuItemEnabled(boolean enabled) {
    getViewState().setEditEnabled(enabled);
    handler.post(() -> {
        editMenuItem.setEnabled(enabled);
        ViewUtils.makeItLooksEnabled(editMenuItem.getIcon(), enabled);
    });
}

有什么解决方案可以避免Handler在每一个中使用View

4

0 回答 0