Device.OS in Xaml in Xamarin.Forms

Multi tool use
Multi tool use


Device.OS in Xaml in Xamarin.Forms



How to write (Device.OS == TargetPlatform.Android) in xaml,



In My class file i created like this in c#, but i don't know how to write this in xaml,


if (Device.OS == TargetPlatform.Android)
{
var stack = new StackLayout()
{
HorizontalOptions = LayoutOptions.Center,
};
var label = new Label()
{
Content = "This design is for Android"
};
stack.Children.Add(label);

};

if (Device.OS == TargetPlatform.iOS)
{
var grid = new Grid()
{
HorizontalOptions = LayoutOptions.Center,
VerticalOptions = LayoutOptions.CenterAndExpand
};
var label = new Label()
{
Content = "This design is for IOS"
};
grid.Children.Add(label);
}



Please help me how to write this two different design in android and IOS in xaml.




1 Answer
1



As far as I know, this is not possible in XAML, at least not like this. Two options come to mind:



Create two pages in XAML, one for Android and one for iOS and push the right page depending on the platform, basically with the if from your code.



Or, implement something like this in one page:


<StackLayout>
<StackLayout.IsVisible>
<OnPlatform x:TypeArguments="x:Boolean">
<OnPlatform.iOS>false</OnPlatform.iOS>
<OnPlatform.Android>true</OnPlatform.Android>
</OnPlatform>
</StackLayout.IsVisible>
</Stacklayout>



And for the grid the other way around. Note: the latter might negatively impact your layout cycle



PS. Device.OS is deprecated, you should use Device.RuntimePlatform now.


Device.OS


Device.RuntimePlatform






By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

aEqafXWym5evk,Y3,1T Aa2 CkEXK 4fy27uZ Xa
Rgc5 vtbaPc,epjqmPLycLcE3TkNf4LKKzs364HGJIYo,fVTc WLm

Popular posts from this blog

PHP contact form sending but not receiving emails

Do graphics cards have individual ID by which single devices can be distinguished?

Create weekly swift ios local notifications