嗨,我正在尝试实现一个底部按钮栏,但没有边距,但是这种行为不是预期的。
在stackLayout中,我的按钮变平了,看起来不错,但有边距。
您还可以看到在第一张图像的底部切割了“ D”图像,滚动视图和按钮之间似乎有间距,我该如何删除它?
我有什么
var consultorButtons = new Grid()
{
VerticalOptions = LayoutOptions.EndAndExpand,
HorizontalOptions = LayoutOptions.FillAndExpand,
Margin = new Thickness(0),
Padding = new Thickness(0),
RowSpacing = 0,
ColumnSpacing = 0,
};
consultorButtons.RowDefinitions.Add(new RowDefinition { Height = new GridLength(1, GridUnitType.Star) });
consultorButtons.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) });
consultorButtons.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) });
consultorButtons.Children.Add(
new Button
{
Text = "TELEFONAR",
BackgroundColor = Color.FromHex("#21c9ae"),
HorizontalOptions = LayoutOptions.FillAndExpand,
VerticalOptions = LayoutOptions.FillAndExpand,
Margin = new Thickness(0),
FontSize = 14
}, 0, 0);
consultorButtons.Children.Add(
new Button
{
Text = "EMAIL",
BackgroundColor = Color.FromHex("#272f57"),
HorizontalOptions = LayoutOptions.FillAndExpand,
VerticalOptions = LayoutOptions.FillAndExpand,
TextColor = Color.White,
Margin = new Thickness(0),
FontSize = 14
}, 1, 0);
网格
StackLayout
答案 0 :(得分:3)
您可以像这样将行高更改为“自动”以解决您的问题:
consultorButtons.RowDefinitions.Add(new RowDefinition { Height = GridLength.Auto });
要删除滚动视图和按钮之间的多余空间,请在Spacing="0"
中写入<StackLayout>
,并在其中放置这两个控件。
希望这可以解决您的问题。
答案 1 :(得分:1)
您没有为网格保留足够的空间。这就是按钮缩小的原因。
尝试将特定高度添加到主网格,因为您的子按钮具有选项FillAndExpand。
var consultorButtons = new Grid()
{
VerticalOptions = LayoutOptions.EndAndExpand,
HorizontalOptions = LayoutOptions.FillAndExpand,
Margin = new Thickness(0),
Padding = new Thickness(0),
HeightRequest=70, // Have your height request here
RowSpacing = 0,
ColumnSpacing = 0,
};
您也可以将RowDefinition
设置为Auto
,但是由于性能原因,它并不是很好,因为您正在增加布局cicle的计算。