如果是 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,它讲述了为不同平台嵌入不同视图的几种方法。
【讨论】:
我尝试了那个解决方案,但是如果你注意到我使用了“ContentPage
的内容吗?它应该可以工作,你能告诉我你的代码吗?以上是关于如果是 android 放置一个按钮,或者如果它是 iOS 放置另一个按钮的主要内容,如果未能解决你的问题,请参考以下文章
Android layout_width & layout_height,它是如何工作的?