@@ -38,21 +38,30 @@ public TiUIFragment(TiViewProxy proxy, Activity activity)
38
38
fragment = createFragment ();
39
39
} else {
40
40
TiCompositeLayout container = new TiCompositeLayout (activity , proxy ) {
41
+ private boolean transactionCommitted = false ;
41
42
@ Override
42
43
public boolean dispatchTouchEvent (MotionEvent ev )
43
44
{
44
45
return interceptTouchEvent (ev ) || super .dispatchTouchEvent (ev );
45
46
}
47
+
48
+ @ Override
49
+ protected void onAttachedToWindow ()
50
+ {
51
+ super .onAttachedToWindow ();
52
+ if (!transactionCommitted ) {
53
+ transactionCommitted = true ;
54
+ FragmentManager manager = ((FragmentActivity ) getContext ()).getSupportFragmentManager ();
55
+ FragmentTransaction transaction = manager .beginTransaction ();
56
+ transaction .runOnCommit (onCommitRunnable );
57
+ fragment = createFragment ();
58
+ transaction .add (getId (), fragment );
59
+ transaction .commitAllowingStateLoss ();
60
+ }
61
+ }
46
62
};
47
63
container .setId (View .generateViewId ());
48
64
setNativeView (container );
49
-
50
- FragmentManager manager = ((FragmentActivity ) activity ).getSupportFragmentManager ();
51
- FragmentTransaction transaction = manager .beginTransaction ();
52
- transaction .runOnCommit (onCommitRunnable );
53
- fragment = createFragment ();
54
- transaction .add (container .getId (), fragment );
55
- transaction .commitAllowingStateLoss ();
56
65
}
57
66
}
58
67
@@ -68,6 +77,9 @@ public void run()
68
77
69
78
public void realizeFragmentViews ()
70
79
{
80
+ if (childrenToRealize == null ) {
81
+ return ;
82
+ }
71
83
for (TiUIView child : childrenToRealize ) {
72
84
// Draw the views
73
85
((ViewGroup ) getNativeView ()).addView (child .getOuterView (), child .getLayoutParams ());
0 commit comments