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