Quantcast
Channel: Xamarin.Forms — Xamarin Community Forums
Viewing all articles
Browse latest Browse all 58056

StackLayout in RelativeLayout, not showing StackLayouts Childrens..

$
0
0

Hey there,
I'm currently trying to show Images of People with their Name below the image and their skill.
All this should be displayed in a grid like layout. Attached an image how it should look like.

I'm currently trying to do this with the following code, using a relativeLayout and putting a stackLayout inside, which stacks the image and the label and the skill.

`

        var picture = new ImageCircle () {
        Source = ImageSource.FromFile("Girl.jpg"),
        };

        var name = new Label {

            Text = "Vangelis Threecups",
            //TextColor = Color.FromRgb(255,128,0),
            XAlign = TextAlignment.Center,
            YAlign = TextAlignment.Center

        };

        var skills = new Label {

            Text = "#Designer",
            TextColor = Color.FromRgb(255,128,0),
            XAlign = TextAlignment.Center,
            YAlign = TextAlignment.Center

        };

        var box1 = new StackLayout {

            Orientation = StackOrientation.Vertical,
            HorizontalOptions = LayoutOptions.CenterAndExpand,
            VerticalOptions = LayoutOptions.CenterAndExpand,
            Children = {picture, name, skills},

        };

        double padding = 30;
        layout.Children.Add( box1, () => new Rectangle(((layout.Width + padding) % 60) / 2, padding, 90, 90));

        var last = box1;
        for (int i = 0; i < 200; i++)
        {
            var relativeTo = last; // local copy

            var box = new StackLayout {

                Orientation = StackOrientation.Vertical,
                HorizontalOptions = LayoutOptions.CenterAndExpand,
                VerticalOptions = LayoutOptions.CenterAndExpand,
                Children = {picture, name, skills},

            };


            Func<View, bool> pastBounds = view => relativeTo.Bounds.Right + padding + view.Width > layout.Width;
            layout.Children.Add(box, () => new Rectangle(pastBounds(relativeTo) ? box1.X : relativeTo.Bounds.Right + padding,
                pastBounds(relativeTo) ? relativeTo.Bounds.Bottom + padding : relativeTo.Y,
                relativeTo.Width,
                relativeTo.Height));

            last = box;
        }`

Viewing all articles
Browse latest Browse all 58056

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>