Skip to content

Commit

Permalink
fixed paddings od the layout
Browse files Browse the repository at this point in the history
  • Loading branch information
Alex-Dobrynin committed Aug 21, 2024
1 parent e1ccd39 commit 0aa300c
Show file tree
Hide file tree
Showing 5 changed files with 125 additions and 20 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -761,18 +761,11 @@ public virtual Size Measure(double widthConstraint, double heightConstraint)
MeasureItem(LaidOutItems, view.Item!, availableSpace);
}

var desiredSize = GetDesiredLayoutSize(widthConstraint, heightConstraint);

return desiredSize;
return GetDesiredLayoutSize(widthConstraint, heightConstraint);
}

public virtual Size ArrangeChildren(Rect bounds)
{
var padding = Padding;

var availableWidth = bounds.Width - padding.HorizontalThickness;
var availableHeight = bounds.Height - padding.VerticalThickness;

var items = CollectionsMarshal.AsSpan((this as IBindableLayout).Children as List<IView>);
var length = items.Length;

Expand Down Expand Up @@ -809,7 +802,7 @@ public virtual Size ArrangeChildren(Rect bounds)
child.Arrange(newBounds);
}

return new(availableWidth, availableHeight);
return new(bounds.Width, bounds.Height);
}
#endregion

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@

<GeneratePackageOnBuild>True</GeneratePackageOnBuild>
<Title>MPowerKit.VirtualizeListView</Title>
<Version>2.0.0-pre2</Version>
<Version>2.0.0-pre3</Version>
<Authors>MPowerKit,Alex Dobrynin</Authors>
<Description>MAUI Virtualize ListView with smooth scrolling and without platform-specific code</Description>
<Copyright>MPowerKit</Copyright>
Expand Down
115 changes: 106 additions & 9 deletions Sample/MainPage.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,16 @@
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:Sample"
xmlns:mpowerkit="clr-namespace:MPowerKit.VirtualizeListView;assembly=MPowerKit.VirtualizeListView">
xmlns:mpowerkit="clr-namespace:MPowerKit.VirtualizeListView;assembly=MPowerKit.VirtualizeListView"
BackgroundColor="Purple">

<Grid RowDefinitions="Auto,50,*">
<Entry TextChanged="Entry_TextChanged" />
<Grid ColumnDefinitions="*,40"
ColumnSpacing="30"
RowDefinitions="Auto,50,*">
<Entry Grid.ColumnSpan="2"
TextChanged="Entry_TextChanged" />
<Grid Grid.Row="1"
Grid.ColumnSpan="2"
ColumnDefinitions="*,*,*,*"
ColumnSpacing="15">
<Button Clicked="Button_Clicked_Add"
Expand All @@ -23,18 +28,38 @@
Text="Move" />
</Grid>

<ScrollView Grid.Row="2"
Grid.ColumnSpan="2"
Padding="15"
BackgroundColor="Aqua">
<Grid BackgroundColor="Orange" />
</ScrollView>

<!--<mpowerkit:FixedRefreshView Grid.Row="1"
Refreshing="FixedRefreshView_Refreshing">-->
<mpowerkit:VirtualizeListView x:Name="listView"
Grid.Row="2"
Grid.ColumnSpan="2"
Padding="15"
IsGrouped="False">
<!--<mpowerkit:VirtualizeListView.ItemsLayout>-->
<!--<mpowerkit:LinearLayout ItemSpacing="15" />-->
<!--<mpowerkit:GridLayout HorizontalItemSpacing="15"
BackgroundColor="Aqua"
IsGrouped="False"
IsVisible="False">
<mpowerkit:VirtualizeListView.Resources>
<ResourceDictionary>
<Style TargetType="mpowerkit:LinearItemsLayoutManager">
<Setter Property="BackgroundColor"
Value="Orange" />
</Style>
</ResourceDictionary>
</mpowerkit:VirtualizeListView.Resources>
<mpowerkit:VirtualizeListView.ItemsLayout>
<mpowerkit:LinearLayout InitialCachePoolSize="2"
ItemSpacing="15" />
<!--<mpowerkit:GridLayout HorizontalItemSpacing="15"
Span="3"
VerticalItemSpacing="15" />-->
<!--</mpowerkit:VirtualizeListView.ItemsLayout>-->
</mpowerkit:VirtualizeListView.ItemsLayout>

<!--<mpowerkit:VirtualizeListView.GroupHeaderTemplate>
<DataTemplate x:DataType="local:ItemsGroup">
<Grid Padding="15"
Expand All @@ -45,6 +70,78 @@
</DataTemplate>
</mpowerkit:VirtualizeListView.GroupHeaderTemplate>-->
<mpowerkit:VirtualizeListView.ItemTemplate>
<local:ItemTemplateSelector>
<local:ItemTemplateSelector.EvenTemplate>
<DataTemplate x:DataType="local:Item">
<mpowerkit:VirtualizeListViewCell BackgroundColor="Red">
<Grid ColumnDefinitions="Auto,*"
ColumnSpacing="15"
RowDefinitions="Auto,Auto,*"
RowSpacing="10">
<Grid.GestureRecognizers>
<TapGestureRecognizer Tapped="TapGestureRecognizer_Tapped" />
</Grid.GestureRecognizers>
<Image Aspect="AspectFill"
HeightRequest="{Binding Height}"
Source="{Binding Image}"
WidthRequest="{Binding Height}" />
<StackLayout Grid.Column="1"
VerticalOptions="Center">
<Label FontAttributes="Bold"
FontSize="22"
Text="{Binding Title}" />
<Label FontSize="16"
Text="{Binding Id}" />
</StackLayout>
<Entry Grid.Row="1"
Grid.ColumnSpan="2" />
<Label Grid.Row="2"
Grid.ColumnSpan="2"
FontAttributes="Italic"
FontSize="18"
LineBreakMode="WordWrap"
Text="{Binding Description}" />
</Grid>
</mpowerkit:VirtualizeListViewCell>
</DataTemplate>
</local:ItemTemplateSelector.EvenTemplate>
<local:ItemTemplateSelector.UnevenTemplate>
<DataTemplate x:DataType="local:Item">
<mpowerkit:VirtualizeListViewCell BackgroundColor="Green">
<Grid ColumnDefinitions="Auto,*"
ColumnSpacing="15"
RowDefinitions="Auto,Auto,*"
RowSpacing="10">
<Grid.GestureRecognizers>
<TapGestureRecognizer Tapped="TapGestureRecognizer_Tapped" />
</Grid.GestureRecognizers>
<Image Aspect="AspectFill"
HeightRequest="{Binding Height}"
Source="{Binding Image}"
WidthRequest="{Binding Height}" />
<StackLayout Grid.Column="1"
VerticalOptions="Center">
<Label FontAttributes="Bold"
FontSize="22"
Text="{Binding Title}" />
<Label FontSize="16"
Text="{Binding Id}" />
</StackLayout>
<Entry Grid.Row="1"
Grid.ColumnSpan="2" />
<Label Grid.Row="2"
Grid.ColumnSpan="2"
FontAttributes="Italic"
FontSize="18"
LineBreakMode="WordWrap"
Text="{Binding Description}" />
</Grid>
</mpowerkit:VirtualizeListViewCell>
</DataTemplate>
</local:ItemTemplateSelector.UnevenTemplate>
</local:ItemTemplateSelector>
</mpowerkit:VirtualizeListView.ItemTemplate>
<!--<mpowerkit:VirtualizeListView.ItemTemplate>
<DataTemplate x:DataType="local:Item">
<mpowerkit:VirtualizeListViewCell BackgroundColor="Red">
<Grid ColumnDefinitions="Auto,*"
Expand Down Expand Up @@ -77,7 +174,7 @@
</Grid>
</mpowerkit:VirtualizeListViewCell>
</DataTemplate>
</mpowerkit:VirtualizeListView.ItemTemplate>
</mpowerkit:VirtualizeListView.ItemTemplate>-->
</mpowerkit:VirtualizeListView>

<!--</mpowerkit:FixedRefreshView>-->
Expand Down
16 changes: 16 additions & 0 deletions Sample/MainPage.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,22 @@ public partial class Item : ObservableObject
private double _height;
}

public class ItemTemplateSelector : DataTemplateSelector
{
public DataTemplate EvenTemplate { get; set; }
public DataTemplate UnevenTemplate { get; set; }

protected override DataTemplate OnSelectTemplate(object item, BindableObject container)
{
if (item is Item data)
{
return data.Id % 2 == 0 ? EvenTemplate : UnevenTemplate;
}

return null;
}
}

public partial class MainPage
{
public MainPage()
Expand Down
1 change: 0 additions & 1 deletion Sample/Sample.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,6 @@

<!-- Images -->
<MauiImage Include="Resources\Images\*" />
<MauiImage Update="Resources\Images\dotnet_bot.png" Resize="True" BaseSize="300,185" />

<!-- Custom Fonts -->
<MauiFont Include="Resources\Fonts\*" />
Expand Down

0 comments on commit 0aa300c

Please sign in to comment.