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'。