【发布时间】:2021-12-17 01:37:01
【问题描述】:
我有一个这样定义的 TextView:
<TextView
android:id="@+id/middleText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="Click the mail button" />
我得到这样的参考:
private TextView _textView;
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
Xamarin.Essentials.Platform.Init(this, savedInstanceState);
SetContentView(Resource.Layout.activity_main);
_textView = FindViewById<TextView>(Resource.Id.middleText);
当点击视图中的按钮时,会运行以下代码:
if (_accelerometerController.IsStarted)
{
_accelerometerController.Stop();
_timer?.Stop();
_timer?.Dispose();
_timer = null;
}
else
{
_accelerometerController.Start();
_timer = new Timer(1000);
_timer.Elapsed += Timer_Elapsed;
_timer.AutoReset = true;
_timer.Enabled = true;
}
当调用 _timer.Elapsed 事件时,将运行以下代码:
private void Timer_Elapsed(object sender, ElapsedEventArgs e)
{
//MainThread.BeginInvokeOnMainThread(() => _textView.Text = _accelerometerController.Status);
//_textView.SetText(_accelerometerController.Status, TextView.BufferType.Normal);
//RunOnUiThread(() => _textView.Text = _accelerometerController.Status);
_textView.Text = _accelerometerController.Status;
_textView.Invalidate();
}
_textView.Text 属性设置正确,但图形大部分时间不会更新以显示新字符串。一旦应用程序选择不更新图形,它就不会恢复,并且文本似乎永远相同,并且在调试时我可以看到 Text 属性设置正确并且其他控件继续工作。 我尝试了多种不同的方式来设置文本,但都产生了相同的结果。
我是 Xamarin 的新手,我不确定项目类型,我为此项目选择了“Android App (Xamarin)”项目模板,但我不确定这是否相同,或包括 Xamarin.Forms。
为什么会这样?我该如何解决?
【问题讨论】:
-
通过创建
Android App (Xamarin),您正在创建 Xamarin.Android 应用程序,这意味着它是 Xamarin.Native for Android 应用程序,而不是 Xamarin.Forms 应用程序。
标签: c# android xamarin xamarin.android