Activity.RunOnUiThread() 不更新视图
Activity.RunOnUiThread() doesn't update view
有 activity、片段和视图模型都绑定到它们。 Fragment 具有由 Timer 多次引发的事件,Fragment 内的委托订阅该事件并使用视图模型中的值更新单个 UI 元素。
代表:
private void OnTimerUpdate(object o, EventArgs e) {
this.Activity.RunOnUiThread(() => {TimerTextView.Text = ViewModel.TimerValue;});
}
它按计划被调用了多次,但是 ui 元素没有更新,除非我正在与视图交互(例如滚动)。
以前 ui 元素和委托都在 activity 内并且工作正常,但是当我将它重构为具有单独的片段时,发生了这种情况。
您是否尝试过在更改文本后调用 TimerTextView.Invalidate()
?
找到答案。我认为这很奇怪,但实际上有效 - 设置文本视图的宽度和高度我正在更新为一些值而不是 'wrap_conent'。
有 activity、片段和视图模型都绑定到它们。 Fragment 具有由 Timer 多次引发的事件,Fragment 内的委托订阅该事件并使用视图模型中的值更新单个 UI 元素。
代表:
private void OnTimerUpdate(object o, EventArgs e) {
this.Activity.RunOnUiThread(() => {TimerTextView.Text = ViewModel.TimerValue;});
}
它按计划被调用了多次,但是 ui 元素没有更新,除非我正在与视图交互(例如滚动)。 以前 ui 元素和委托都在 activity 内并且工作正常,但是当我将它重构为具有单独的片段时,发生了这种情况。
您是否尝试过在更改文本后调用 TimerTextView.Invalidate()
?
找到答案