首页 文章

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

提问于
浏览
0

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

我有一个Xamarin表单项目,将部署在Android和iOS上 . 在我的一个视图中,我有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 Forms版本:2.3.4.267 . 任何人以前都经历过这个问题,或者对可能出现的问题有任何想法?

1 回答

  • 0

    原来这是一个线程问题 . 用于填充我的视图中的选择器的列表使用以下命令加载:

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

    我把它改为:

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

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

相关问题