diff options
author | E.Z. Hart <hartez@users.noreply.github.com> | 2016-05-10 11:15:47 -0600 |
---|---|---|
committer | Jason Smith <jason.smith@xamarin.com> | 2016-05-10 10:15:47 -0700 |
commit | 5acafedb8e3e2ace8e66f9ff20655d5d96e8ed97 (patch) | |
tree | c816ea1127275953bcc458315e1714fd0cb17003 /Xamarin.Forms.Platform.Android/AppCompat/FragmentContainer.cs | |
parent | d4a5bb8dfcb39949451fe0e5390a684f116cc288 (diff) | |
download | xamarin-forms-5acafedb8e3e2ace8e66f9ff20655d5d96e8ed97.tar.gz xamarin-forms-5acafedb8e3e2ace8e66f9ff20655d5d96e8ed97.tar.bz2 xamarin-forms-5acafedb8e3e2ace8e66f9ff20655d5d96e8ed97.zip |
[Android] Isolate fragment management for children of MasterDetailPage (#136)
* Isolate fragment management for children of MasterDetailPage in AppCompat
If a MasterDetailPage hosts NavigationPages or TabbedPages in either the
Master or Detail sections, wrap those pages in their own Fragment (and
ChildFragmentManager) to isolate their Fragment management operations and
avoid recursive entry into the executePendingTransactions method
Also fix a disposal bug in the custom MDP renderer in Control Gallery
* Remove MDP Split setting that breaks test on iPad
Diffstat (limited to 'Xamarin.Forms.Platform.Android/AppCompat/FragmentContainer.cs')
-rw-r--r-- | Xamarin.Forms.Platform.Android/AppCompat/FragmentContainer.cs | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/Xamarin.Forms.Platform.Android/AppCompat/FragmentContainer.cs b/Xamarin.Forms.Platform.Android/AppCompat/FragmentContainer.cs index 9ae56aba..cc35b1a3 100644 --- a/Xamarin.Forms.Platform.Android/AppCompat/FragmentContainer.cs +++ b/Xamarin.Forms.Platform.Android/AppCompat/FragmentContainer.cs @@ -11,6 +11,7 @@ namespace Xamarin.Forms.Platform.Android.AppCompat { readonly WeakReference _pageReference; + Action<PageContainer> _onCreateCallback; bool? _isVisible; PageContainer _pageContainer; IVisualElementRenderer _visualElementRenderer; @@ -51,6 +52,11 @@ namespace Xamarin.Forms.Platform.Android.AppCompat return new FragmentContainer(page) { Arguments = new Bundle() }; } + public void SetOnCreateCallback(Action<PageContainer> callback) + { + _onCreateCallback = callback; + } + public override AView OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { if (Page != null) @@ -59,6 +65,9 @@ namespace Xamarin.Forms.Platform.Android.AppCompat Android.Platform.SetRenderer(Page, _visualElementRenderer); _pageContainer = new PageContainer(Forms.Context, _visualElementRenderer, true); + + _onCreateCallback?.Invoke(_pageContainer); + return _pageContainer; } |