目前我正在创建一个类似于Xamarin Slider的自定义组件。其中我遇到了一些内存泄漏。因此,为了测试这个,我在NavigationPage中创建了一些控件,并通过单击按钮移动到该页面(我使用Xamarin探查器来检查内存分配)。我回去了内存不释放。此外,在再次导航时,内存不断增加。我试过提供弱引用,使用dispose方法转储和GC收集等等,
我用xamarin Slider替换了我的自定义组件。但我遇到了相同的内存分配问题。
我在下面贴了我的样本。我对NavigationPages做错了什么。?
[XAML]
<ContentPage.Content>
<Button Text="SLider Page" Clicked="Handle_Clicked"/>
</ContentPage.Content>
[CS]
async void Handle_Clicked(object sender, System.EventArgs e)
{
await Navigation.PushAsync(new SlidertPage());
}
[滑块页面]
public class SlidertPage :ContentPage
{
public SlidertPage()
{
StackLayout stack = new StackLayout();
stack.Children.Add(new Slider() { HeightRequest = 200, WidthRequest = 200 });
stack.Children.Add(new Slider() { HeightRequest = 200, WidthRequest = 200 });
StackLayout stack2 = new StackLayout();
stack2.Children.Add(new Slider() { HeightRequest = 200, WidthRequest = 200 });
stack2.Children.Add(new Slider() { HeightRequest = 200, WidthRequest = 200 });
StackLayout stack3 = new StackLayout();
stack3.Orientation = StackOrientation.Horizontal;
stack3.Children.Add(stack);
stack3.Children.Add(stack2);
this.Content = stack3;
}
}
请在页面关闭时提供清除分配的任何建议。