Xamarin Forms Collection View Extra Padding

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Xamarin Forms Collection View Extra Padding相关的知识,希望对你有一定的参考价值。

我正在尝试Xamarin Forms集合视图。列表中的每个项目似乎都有一些额外的填充。我看不到如何删除它。

这里是我的看法。该视图具有浅绿色背景。模板中的2列网格的标签设置为红色。

enter image description here

这是XAML / C#

<CollectionView 
    x:Name="BodyView"
    SelectionMode="Single"
    HorizontalOptions="FillAndExpand"
    BackgroundColor="Aqua"
    Grid.Row="2" />

BodyView.ItemTemplate = new DataTemplate(() =>
{
    var converter = (IValueConverter) Application.Current.Resources["GridCellConverter"];

    Grid grid = new Grid( );
    grid.RowDefinitions.Add(new RowDefinition { Height = GridLength.Auto });
    grid.Margin = new Thickness(-20, 0, 0, 0);

    foreach (var col in _gridColumns)
    {
        grid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) });

        var content = new Label();
        content.Style = (Style)Application.Current.Resources["GridCellLabel"];
        content.BackgroundColor = Color.Red;
        Binding binding = new Binding("CellData", BindingMode.OneWay, converter, col.PageFieldId);
        content.SetBinding(Label.TextProperty, binding);
        grid.Children.Add(content, grid.ColumnDefinitions.Count - 1, 0);
    }

    return grid;
});

我将我能找到的所有东西都归零。

我尝试在网格上设置负边距,但不会向左移动。

是否有任何方法可以删除填充?

答案

您正在寻找的是网格的行和列间距!

    Grid grid = new Grid( ){ ColumnSpacing= "0", RowSpacing="0" };

此外,这需要删除:

    grid.Margin = new Thickness(-20, 0, 0, 0);

还因为您正在使用CollectionView,所以为什么不在DataTemplate中使用单个项放入GridItemsLayout

此处有更多信息:https://docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/collectionview/layout#vertical-grid

以上是关于Xamarin Forms Collection View Extra Padding的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin.Forms:Forms.Context 已过时

Xamarin.Forms 手势密码实现

Xamarin.Forms 和 Xamarin Native 有啥区别? [关闭]

如何使用 Xamarin.Forms.Maps(无 Xamarin.Forms.GoogleMaps)在地图中应用样式或更改颜色

Xamarin Forms Prism:prism ResourceDictionary 中已存在具有键“Xamarin.Forms.NavigationPage”的资源

Xamarin.Forms.Forms.Init(e) Onlaunched 中的 FileNotFoundExeception