如果是 android 放置一个按钮,或者如果它是 iOS 放置另一个按钮

Posted

技术标签:

【中文标题】如果是 android 放置一个按钮,或者如果它是 iOS 放置另一个按钮【英文标题】:if it's an android place a button or if it's iOS place another button 【发布时间】:2017-10-31 14:53:14 【问题描述】:

有人知道如何在 XAML 代码中使用 xamarin 表单,¿如果它是 android 放置一个按钮,或者如果它是 ios 放置另一个按钮?

这是我的代码

<ContentPage.Content>


    <ListView x:Name="ListElement" SeparatorColor="Red"
              Header=""
              HasUnevenRows="True">


        <ListView.HeaderTemplate>
            <DataTemplate>
              **<!-- if is android** 
                <Grid Padding="20" 
                        BackgroundColor="#DE6B51">
                    <Label Text="Bandeja de Entrada" TextColor="White"
                            HorizontalOptions="Center" FontSize="Large" />
                </Grid>
              **-->**
            </DataTemplate>
        </ListView.HeaderTemplate>


    </ListView>
</ContentPage.Content>

【问题讨论】:

【参考方案1】:

可能不够干净,在 XAML 中我会创建 2 个按钮并为它们添加一个属性,第一个:

IsVisible="Binding IsAndroid" 

第二个:

IsVisible="Binding IsAndroid, Converter=StaticResource not"

IsVisible="Binding IsIOS"

如果您不想使用转换器,只需在模型中创建两个道具

    private bool _IsAndroid;
    public bool IsAndroid
    
        get  return Device.RuntimePlatform == Device.Android; 
    

    private bool _IsIOS;
    public bool IsIOS
    
        get  return Device.RuntimePlatform == Device.iOS; 
    

【讨论】:

【参考方案2】:

如果是 android 放置一个按钮,或者如果是 iOS 放置另一个按钮?

是的,这是可能的。在 XAML 中,您可以像这样编写代码:

<OnPlatform x:TypeArguments="View">
    <OnPlatform.Android>
        <!--view for Android-->
    </OnPlatform.Android>
    <OnPlatform.iOS>
        <!--view for iOS-->
    </OnPlatform.iOS>
</OnPlatform>

或者我建议你阅读这个文档:Mobile - Embedding Native Views in Your Xamarin.Forms Apps,它讲述了为不同平台嵌入不同视图的几种方法。

【讨论】:

我尝试了那个解决方案,但是如果你注意到我使用了“”,那么如果你添加这些行它就不起作用了。 @Ceregol,您想添加不同的视图作为ContentPage 的内容吗?它应该可以工作,你能告诉我你的代码吗?

以上是关于如果是 android 放置一个按钮,或者如果它是 iOS 放置另一个按钮的主要内容,如果未能解决你的问题,请参考以下文章

android按钮隐藏属性

Android layout_width & layout_height,它是如何工作的?

android 怎样设置单击一个按钮,不会重复弹出dialog

如果选中单选按钮,如何选中复选框

在按钮右侧放置一个 Drawable [重复]

贝宝改变了取消网址的含义吗?或者它是一个错误?