Skip to content

Commit 87d8437

Browse files
committed
Better item virtualization
1 parent 3984954 commit 87d8437

2 files changed

Lines changed: 18 additions & 10 deletions

File tree

src/UniGetUI/Pages/SoftwarePages/AbstractPackagesPage.xaml

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030

3131

3232
<Page.Resources>
33-
<DataTemplate x:Key="PackageTemplate" x:DataType="pkgClasses:PackageWrapper">
33+
<DataTemplate x:Key="PackageTemplate_List" x:DataType="pkgClasses:PackageWrapper">
3434
<widgets:PackageItemContainer
3535
AutomationProperties.Name="{x:Bind Package.AutomationName}"
3636
CornerRadius="4"
@@ -850,16 +850,23 @@
850850
CornerRadius="0,4,4,0" />
851851
</Grid>
852852

853-
<ItemsView
854-
x:Name="PackageList"
853+
<ItemsRepeaterScrollHost
855854
Grid.Row="1"
856-
Padding="4,0"
857855
HorizontalAlignment="Stretch"
858-
VerticalAlignment="Stretch"
859-
x:FieldModifier="protected"
860-
CanBeScrollAnchor="False"
861-
CharacterReceived="{x:Bind PackageList_CharacterReceived}"
862-
ItemsSource="{x:Bind FilteredPackages, Mode=OneWay}" />
856+
VerticalAlignment="Stretch">
857+
<ScrollViewer>
858+
<ItemsView
859+
x:Name="PackageList"
860+
Padding="4,0"
861+
HorizontalAlignment="Stretch"
862+
VerticalAlignment="Stretch"
863+
x:FieldModifier="protected"
864+
CanBeScrollAnchor="False"
865+
CharacterReceived="{x:Bind PackageList_CharacterReceived}"
866+
ItemsSource="{x:Bind FilteredPackages, Mode=OneWay}" />
867+
</ScrollViewer>
868+
</ItemsRepeaterScrollHost>
869+
863870

864871
<Grid Grid.Row="1">
865872
<Grid.RowDefinitions>

src/UniGetUI/Pages/SoftwarePages/AbstractPackagesPage.xaml.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1227,7 +1227,7 @@ private void FilteringPanel_PaneClosing(SplitView sender, SplitViewPaneClosingEv
12271227

12281228
private void LoadListLayout()
12291229
{
1230-
PackageList.ItemTemplate = (DataTemplate)this.Resources["PackageTemplate"];
1230+
PackageList.ItemTemplate = (DataTemplate)this.Resources["PackageTemplate_List"];
12311231
PackageList.Layout = new StackLayout() { Spacing = 3 };
12321232
}
12331233

@@ -1240,6 +1240,7 @@ private void LoadGridLayout()
12401240
MinColumnSpacing = 8,
12411241
MinRowSpacing = 8,
12421242
MinItemWidth = 275,
1243+
MinItemHeight = 56, // Add this - should match your row height plus padding
12431244
};
12441245
}
12451246

0 commit comments

Comments
 (0)