在 Xamarin Forms 中使用 BoxView 创建行

Create line use BoxView in Xamarin Forms

我需要创建一个由多个 BoxView 组成的行(每个 BoxView 对应 WidthRequest=0.20830HeightRequest=5)。将有 1440 个 BoxView 的顺序排列成一行(大约 WidthRequest=300)。

我的代码-

public partial class timeManagement : ContentPage
{
    double oneMinute=0.20833333;
    public timeManagement ()
    {
        InitializeComponent ();
        StackLayout stack = new StackLayout{Orientation=StackOrientation.Horizontal,                
        };

        for(int i=1;i<=14;i++)
        {
            BoxView piece_ofLine = new BoxView
            { 
                HeightRequest=5,
                WidthRequest=5,
                Color=Color.Red
            };

            if (i >= 5 && i <= 9) {
                stack.Children.Add (piece_ofLine);
                piece_ofLine.Color = Color.Green;
            } else {
                stack.Children.Add (piece_ofLine);
                piece_ofLine.Color = Color.Red;
            }

        }


        Content = new StackLayout {
            Padding =50, 
            Spacing=0,

            Children = {
                stack
            }
        };

    }
}

输出为-

但我希望所有方框并排放置,这样看起来就像一条线。

这里有一些问题

  1. StackLayout 的默认方向是 Vertical,因此您需要在 stack 变量上设置它

  2. 您需要为添加到堆栈的每个 BoxView 创建一个新实例。否则它只会一遍又一遍地添加相同的内容。最后你只会有一个。

  3. 我假设您希望它们直接位于彼此的一侧。如果是这种情况,我认为将 StackLayoutSpacing 显式设置为 0

  4. 是最安全的