Xamarin 表单按钮 IsVisible 绑定不适用于 Android

ph0b0x

我尝试搜索相同的错误但没有结果,所以这是我的问题:

我有一个将部署在 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。任何人以前都经历过这种情况或对可能是什么问题有任何想法?

ph0b0x

结果发现是线程问题。用于在我的视图中填充选取器的列表是使用以下方法加载的:

await Task.Run(() => {
  //API calls to load lists
});

我把它改成:

Device.BeginInvokeOnMainThread(() => {
  //API calls to load lists
});

现在 Android 更新了 UI。奇怪,但显然列表中的那些值被卡在了不同的线程上......

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章