现在我可以像这样调用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
?