gpt4 book ai didi

xamarin.forms - 如何在Xamarin Forms水平StackLayout中平均分配4个控件

转载 作者:行者123 更新时间:2023-12-04 05:38:11 24 4
gpt4 key购买 nike

如何在Xamarin Forms水平StackLayout中平均分配4个控件。我在iPhone 4S上看起来不错,但在iPhone 6或iPad上却很烂。水平堆栈布局是ListView中的列表项。我已经尝试过相对布局和1行网格。但是我所拥有的看起来最好(在4S上)。谢谢。

我依次有一个按钮,一个标签,一个标签和一个按钮。

        stackLayout = new StackLayout {
Orientation = StackOrientation.Horizontal,
HorizontalOptions = LayoutOptions.Center
};
deleteButton.Image = "minus.png";
deleteButton.HorizontalOptions = LayoutOptions.Start;

//label text width may vary from 4 to 16 characters
displayLabel.SetBinding(Label.TextProperty, "Text");
displayLabel.HorizontalOptions = LayoutOptions.Center;
displayLabel.WidthRequest = 125;

//label text is always 8 characters
displayLabel2.SetBinding(Label.TextProperty, "Text2");
displayLabel2.HorizontalOptions = LayoutOptions.Center;

button2.Image = "plus.png";
button2.HorizontalOptions = LayoutOptions.EndAndExpand;

stackLayout.Children.Add(deleteButton);
stackLayout.Children.Add(displayLabel);
stackLayout.Children.Add(displayLabel2);
stackLayout.Children.Add(button2);

最佳答案

使用StackLayout:

using Xamarin.Forms;

var label1 = new Label() {
Text = "label1",
HorizontalOptions = LayoutOptions.FillAndExpand, //OR CenterAndExpand
};

var label2 = new Label() {
Text = "label2",
HorizontalOptions = LayoutOptions.FillAndExpand, //OR CenterAndExpand
};

var label3 = new Label() {
Text = "label3",
HorizontalOptions = LayoutOptions.FillAndExpand, //OR CenterAndExpand
};

var label4 = new Label() {
Text = "label4",
HorizontalOptions = LayoutOptions.FillAndExpand, //OR CenterAndExpand
};

var stackLayout = new StackLayout
{
Orientation = StackOrientation.Horizontal,
HorizontalOptions = LayoutOptions.FillAndExpand,
Children = {
label1,
label2,
label3,
label4,
}
};

RootPage.Children.Add(new ContentPage {
Padding = 10,
Content = stackLayout
});

使用网格:
using Xamarin.Forms;

var label1 = new Label() {
Text = "label1",
};

var label2 = new Label() {
Text = "label2",
};

var label3 = new Label() {
Text = "label3",
};

var label4 = new Label() {
Text = "label4",
};

var gridLayout = new Grid
{
HorizontalOptions = LayoutOptions.FillAndExpand,
ColumnDefinitions = new ColumnDefinitionCollection() {
new ColumnDefinition() { Width = new GridLength(1, GridUnitType.Star) },
new ColumnDefinition() { Width = new GridLength(1, GridUnitType.Star) },
new ColumnDefinition() { Width = new GridLength(1, GridUnitType.Star) },
new ColumnDefinition() { Width = new GridLength(1, GridUnitType.Star) },
},
RowDefinitions = new RowDefinitionCollection() {
new RowDefinition() { Height = GridLength.Auto }
}
};

gridLayout.Children.Add(label1, 0, 0);
gridLayout.Children.Add(label2, 1, 0);
gridLayout.Children.Add(label3, 2, 0);
gridLayout.Children.Add(label4, 3, 0);

RootPage.Children.Add(new ContentPage {
Padding = 10,
Content = gridLayout
});

关于xamarin.forms - 如何在Xamarin Forms水平StackLayout中平均分配4个控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32204968/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com