Ste*_*eAp 8 xamarin xamarin.forms
在Xamarin.Forms中为布局添加空间的建议方法是什么?
一种方法是添加一个没有子代的框架,如下所示:
new Frame {
BackgroundColor = Color.White,
HeightRequest = 1,
MinimumHeightRequest = 1,
HasShadow = false
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,HeightRequest和MinimumHeightRequest被忽略.
有更好的方法吗?
您可以将控件放在布局中(如框架,滚动视图,堆栈面板)并使用Padding属性:
this.stackPanel = new StackLayout ()
{
Padding = new Thickness (8, 8)
};
var scrollView = new ScrollView ()
{
Content = stackPanel,
Padding = new Thickness (1, 2, 3, 4)
};
var frame = new Frame ()
{
Padding = new Thickness (8)
};
Run Code Online (Sandbox Code Playgroud)
例如,如果你想在两个按钮之间留出空间,我相信这样就可以了.第一个添加10到底部填充,第二个添加10到顶部填充总共20.
var frame1 = new Frame ()
{
Padding = new Thickness (0,0,0,10),
Content = new Button()
};
var frame2 = new Frame ()
{
Padding = new Thickness (0,10,0,0),
Content = new Button()
};
Run Code Online (Sandbox Code Playgroud)
大多数Xamarin.Forms布局支持在元素之间添加空间:
StackLayout有Spacing房产,Grid有RowSpacing和ColumnSpacing属性,现在,如果你想在特定的地方添加间距,那么它的方法是包括BoxView:
myStackLayout.Children.Add (new BoxView {Color = Color.Transparent, HeightRequest = 5});
Run Code Online (Sandbox Code Playgroud)
您也可以将内容包装在Frame或中ContentView,但它会在内容中添加填充而不是添加空格(尽管效果会相同).
我所做的对我来说非常有效:
假设你想在水平 StackLayout 上均匀分布 2 个 Label:
new StackLayout
{
Orientation = StackOrientation.Horizontal,
HorizontalOptions=LayoutOptions.CenterAndExpand,
Spacing = 0, // <- Very important!!
Children = {
new Label { Text = "Label 1" },
new BoxView { HorizontalOptions = LayoutOptions.FillAndExpand }, // <- the clever part
new Label { Text = "Label 2" }
}
};
Run Code Online (Sandbox Code Playgroud)
概括
通过插入填充视图之间剩余空间(“FillAndExpand”)的 BoxView,您的视图会显得均匀分布。通过设置Spacing = 0,您的视图之间不会有额外的空间。
| 归档时间: |
|
| 查看次数: |
17545 次 |
| 最近记录: |