@@ -260,6 +260,10 @@ export class TabViewItem extends TabViewItemBase {
260260 public index : number ;
261261 private _defaultTransformationMethod : android . text . method . TransformationMethod ;
262262
263+ get _hasFragments ( ) : boolean {
264+ return true ;
265+ }
266+
263267 public initNativeView ( ) : void {
264268 super . initNativeView ( ) ;
265269 if ( this . nativeViewProtected ) {
@@ -297,6 +301,23 @@ export class TabViewItem extends TabViewItemBase {
297301 }
298302 }
299303
304+ public _getChildFragmentManager ( ) : android . support . v4 . app . FragmentManager {
305+ const tabView = this . parent as TabView ;
306+ let tabFragment = null ;
307+ for ( let fragment of tabView . _getFragmentManager ( ) . getFragments ( ) . toArray ( ) ) {
308+ if ( fragment . index === this . index ) {
309+ tabFragment = fragment ;
310+ break ;
311+ }
312+ }
313+
314+ if ( ! tabFragment ) {
315+ throw new Error ( `Could not get child fragment manager for tab item with index ${ this . index } ` ) ;
316+ }
317+
318+ return tabFragment . getChildFragmentManager ( ) ;
319+ }
320+
300321 [ fontSizeProperty . getDefault ] ( ) : { nativeSize : number } {
301322 return { nativeSize : this . nativeViewProtected . getTextSize ( ) } ;
302323 }
@@ -361,21 +382,6 @@ export class TabView extends TabViewBase {
361382 tabs . push ( new WeakRef ( this ) ) ;
362383 }
363384
364- get _hasFragments ( ) : boolean {
365- return true ;
366- }
367-
368- public _getChildFragmentManager ( ) : android . support . v4 . app . FragmentManager {
369- if ( this . _pagerAdapter ) {
370- const fragment : android . support . v4 . app . Fragment = ( < any > this . _pagerAdapter ) . mCurrentPrimaryItem ;
371- if ( fragment && fragment . isAdded ( ) ) {
372- return fragment . getChildFragmentManager ( ) ;
373- }
374- }
375-
376- return null ;
377- }
378-
379385 public onItemsChanged ( oldItems : TabViewItem [ ] , newItems : TabViewItem [ ] ) : void {
380386 super . onItemsChanged ( oldItems , newItems ) ;
381387
0 commit comments