我尝试搜索相同的错误但没有结果,所以这是我的问题:
我有一个将部署在 Android 和 iOS 上的 Xamarin 表单项目。在我的一个视图中,我有 2 个按钮,只有在用户先选择了几个选项时才会显示这些按钮。这在 iOS 上工作得很好,但是当我在 Android 模拟器上部署时,除非我切换方向,否则按钮不会显示。下面是代码示例:
<Button
Grid.Column="0"
Grid.Row="0"
TextColor="{StaticResource AwesomeTxtColor}"
Text="Click Me"
BackgroundColor="{StaticResource AwesomeBgColor}"
IsVisible="{Binding SelectedIndex, Converter={StaticResource isGreaterOrEqualZero}}"
Command="{Binding AwesomeCommand}" />
同样,转换器也在每个调试会话和绑定中工作。这个问题只发生在我的 Android 上。iOS按预期工作。Xamarin 表单版本:2.3.4.267。任何人以前都经历过这种情况或对可能是什么问题有任何想法?
结果发现是线程问题。用于在我的视图中填充选取器的列表是使用以下方法加载的:
await Task.Run(() => {
//API calls to load lists
});
我把它改成:
Device.BeginInvokeOnMainThread(() => {
//API calls to load lists
});
现在 Android 更新了 UI。奇怪,但显然列表中的那些值被卡在了不同的线程上......
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句