diff --git a/src/Android/Avalonia.Android/AvaloniaActivity.cs b/src/Android/Avalonia.Android/AvaloniaActivity.cs index 7927a13c44..f5d620a97a 100644 --- a/src/Android/Avalonia.Android/AvaloniaActivity.cs +++ b/src/Android/Avalonia.Android/AvaloniaActivity.cs @@ -31,20 +31,22 @@ namespace Avalonia.Android CustomizeAppBuilder(builder); + View = new AvaloniaView(this); + SetContentView(View); + var lifetime = new SingleViewLifetime(); + lifetime.View = View; builder.AfterSetup(x => { - View = new AvaloniaView(this); - SetContentView(View); - _viewModel = new ViewModelProvider(this).Get(Java.Lang.Class.FromType(typeof(AvaloniaViewModel))) as AvaloniaViewModel; - lifetime.View = View; if (_viewModel.Content != null) { View.Content = _viewModel.Content; } + + View.Prepare(); }); builder.SetupWithLifetime(lifetime); diff --git a/src/Android/Avalonia.Android/AvaloniaView.cs b/src/Android/Avalonia.Android/AvaloniaView.cs index 8de3657283..8177cf1f69 100644 --- a/src/Android/Avalonia.Android/AvaloniaView.cs +++ b/src/Android/Avalonia.Android/AvaloniaView.cs @@ -12,7 +12,7 @@ namespace Avalonia.Android { public class AvaloniaView : FrameLayout { - private readonly EmbeddableControlRoot _root; + private EmbeddableControlRoot _root; private readonly ViewImpl _view; private IDisposable? _timerSubscription; @@ -21,6 +21,11 @@ namespace Avalonia.Android { _view = new ViewImpl(context); AddView(_view.View); + + } + + internal void Prepare () + { _root = new EmbeddableControlRoot(_view); _root.Prepare(); }