Xamarin Forms Button taking up whole screen despite relative AbsoluteLayout LayoutBounds settings

Issue

I am attempting to add a button to an absolutelayout using relative LayoutBounds so that it doesn’t take up the whole screen. However, the button is taking up the whole screen. My c# code is as follows:

Button temp  new Button()
{
     Text  "Test"
};
AbsoluteLayout.SetLayoutBounds(temp, new Xamarin.Forms.Rectangle(.1, .1, .1, .1));
AbsoluteLayout.SetLayoutFlags(temp, AbsoluteLayoutFlags.All);
photoGrid.Children.Add(temp);

photoGrid is my AbsoluteLayout. I am following the tutorial here (https://docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/layouts/absolutelayout#proportional-positioning-and-sizing) and see no reason why the button would be taking up the entire screen instead of a small part of it (10% away from the left and 10% away from the top with dimensions taking up 10% of the screen in each direction).

The AbsoluteLayout also has an image inside it by the time that this button is added; the XAML code is as follows:

<AbsoluteLayout x:Name"PhotoGrid" HorizontalOptions"FillAndExpand" VerticalOptions"FillAndExpand" IsVisible"False">
     <Image x:Name"PhotoImage" AbsoluteLayout.LayoutBounds"1,1,1,1" AbsoluteLayout.LayoutFlags"All" Aspect"AspectFit"/>
</AbsoluteLayout>

Finally, the AbsoluteLayout itself is inside a 1 row, 1 column grid. This is because the content of the page changes as the user uses the app, and placing several views inside a grid like this allows me to change which of them is visible at a given time depending on what the app is doing.

Why might the button generated with the c# code above take up the entirety of the full page gridview, and how can I fix this?

Solution

I test with your code , it works fine both on android and iOS .

enter image description hereenter image description here

Answered By – ColeX – MSFT

Leave a Comment