4
4
import android .os .Handler ;
5
5
import android .support .annotation .Nullable ;
6
6
import android .support .v4 .app .Fragment ;
7
- import android .support .v4 .app .FragmentTransaction ;
8
- import android .support .v7 .app .AlertDialog ;
9
7
import android .support .v7 .app .AppCompatActivity ;
10
- import android .util .Log ;
11
8
import android .view .KeyEvent ;
12
9
import android .view .MotionEvent ;
13
- import android .view .ViewGroup ;
14
-
15
- import java .util .List ;
16
10
17
11
import me .yokeyword .fragmentation .anim .DefaultVerticalAnimator ;
18
12
import me .yokeyword .fragmentation .anim .FragmentAnimator ;
19
- import me .yokeyword .fragmentation .debug .DebugFragmentRecord ;
20
- import me .yokeyword .fragmentation .debug .DebugHierarchyViewContainer ;
21
13
22
14
/**
23
15
* Created by YoKeyword on 16/1/22.
@@ -27,7 +19,7 @@ public class SupportActivity extends AppCompatActivity implements ISupport {
27
19
28
20
private FragmentAnimator mFragmentAnimator ;
29
21
30
- boolean mPopMulitpleNoAnim = false ;
22
+ boolean mPopMultipleNoAnim = false ;
31
23
32
24
// 防抖动 是否可以点击
33
25
private boolean mFragmentClickable = true ;
@@ -78,7 +70,7 @@ public void setFragmentAnimator(FragmentAnimator fragmentAnimator) {
78
70
79
71
/**
80
72
* 构建Fragment转场动画
81
- * <p/ >
73
+ * <p>
82
74
* 如果是在Activity内实现,则构建的是Activity内所有Fragment的转场动画,
83
75
* 如果是在Fragment内实现,则构建的是该Fragment的转场动画,此时优先级 > Activity的onCreateFragmentAnimator()
84
76
*
@@ -190,18 +182,14 @@ public void startWithPop(SupportFragment toFragment) {
190
182
191
183
/**
192
184
* 得到位于栈顶Fragment
193
- *
194
- * @return
195
185
*/
196
186
@ Override
197
187
public SupportFragment getTopFragment () {
198
188
return mFragmentation .getTopFragment (getSupportFragmentManager ());
199
189
}
200
190
201
191
/**
202
- * 获取栈内的framgent对象
203
- *
204
- * @param fragmentClass
192
+ * 获取栈内的fragment对象
205
193
*/
206
194
@ Override
207
195
public <T extends SupportFragment > T findFragment (Class <T > fragmentClass ) {
@@ -236,11 +224,11 @@ public void popTo(Class<?> fragmentClass, boolean includeSelf, Runnable afterPop
236
224
}
237
225
238
226
void preparePopMultiple () {
239
- mPopMulitpleNoAnim = true ;
227
+ mPopMultipleNoAnim = true ;
240
228
}
241
229
242
230
void popFinish () {
243
- mPopMulitpleNoAnim = false ;
231
+ mPopMultipleNoAnim = false ;
244
232
}
245
233
246
234
@ Override
@@ -274,73 +262,16 @@ public void setFragmentClickable() {
274
262
}
275
263
276
264
/**
277
- * 显示栈视图 ,调试时使用
265
+ * 显示栈视图dialog ,调试时使用
278
266
*/
279
267
public void showFragmentStackHierarchyView () {
280
- DebugHierarchyViewContainer container = new DebugHierarchyViewContainer (this );
281
- container .bindFragmentRecords (mFragmentation .getFragmentRecords ());
282
- container .setLayoutParams (new ViewGroup .LayoutParams (ViewGroup .LayoutParams .MATCH_PARENT , ViewGroup .LayoutParams .MATCH_PARENT ));
283
- new AlertDialog .Builder (this )
284
- .setTitle ("栈视图" )
285
- .setView (container )
286
- .setPositiveButton ("关闭" , null )
287
- .setCancelable (true )
288
- .show ();
268
+ mFragmentation .showFragmentStackHierarchyView ();
289
269
}
290
270
291
271
/**
292
- * 显示栈视图 日志 ,调试时使用
272
+ * 显示栈视图日志 ,调试时使用
293
273
*/
294
274
public void logFragmentStackHierarchy (String TAG ) {
295
- List <DebugFragmentRecord > fragmentRecordList = mFragmentation .getFragmentRecords ();
296
- if (fragmentRecordList == null ) return ;
297
-
298
- StringBuilder sb = new StringBuilder ();
299
-
300
- for (int i = fragmentRecordList .size () - 1 ; i >= 0 ; i --) {
301
- DebugFragmentRecord fragmentRecord = fragmentRecordList .get (i );
302
-
303
- if (i == fragmentRecordList .size () - 1 ) {
304
- sb .append ("═══════════════════════════════════════════════════════════════════════════════════\n " );
305
- if (i == 0 ) {
306
- sb .append ("\t 栈顶\t \t \t " + fragmentRecord .fragmentName + "\n " );
307
- sb .append ("═══════════════════════════════════════════════════════════════════════════════════" );
308
- } else {
309
- sb .append ("\t 栈顶\t \t \t " + fragmentRecord .fragmentName + "\n \n " );
310
- }
311
- } else if (i == 0 ) {
312
- sb .append ("\t 栈底\t \t \t " + fragmentRecord .fragmentName + "\n \n " );
313
- processChildLog (fragmentRecord .childFragmentRecord , sb , 1 );
314
- sb .append ("═══════════════════════════════════════════════════════════════════════════════════" );
315
- Log .i (TAG , sb .toString ());
316
- return ;
317
- } else {
318
- sb .append ("\t ↓\t \t \t " + fragmentRecord .fragmentName + "\n \n " );
319
- }
320
-
321
- processChildLog (fragmentRecord .childFragmentRecord , sb , 1 );
322
- }
323
- }
324
-
325
- private void processChildLog (List <DebugFragmentRecord > fragmentRecordList , StringBuilder sb , int childHierarchy ) {
326
- if (fragmentRecordList == null || fragmentRecordList .size () == 0 ) return ;
327
-
328
- for (int j = 0 ; j < fragmentRecordList .size (); j ++) {
329
- DebugFragmentRecord childFragmentRecord = fragmentRecordList .get (j );
330
- for (int k = 0 ; k < childHierarchy ; k ++) {
331
- sb .append ("\t \t \t " );
332
- }
333
- if (j == 0 ) {
334
- sb .append ("\t 子栈顶\t \t " + childFragmentRecord .fragmentName + "\n \n " );
335
- } else if (j == fragmentRecordList .size () - 1 ) {
336
- sb .append ("\t 子栈底\t \t " + childFragmentRecord .fragmentName + "\n \n " );
337
- processChildLog (childFragmentRecord .childFragmentRecord , sb , ++childHierarchy );
338
- return ;
339
- } else {
340
- sb .append ("\t ↓\t \t \t " + childFragmentRecord .fragmentName + "\n \n " );
341
- }
342
-
343
- processChildLog (childFragmentRecord .childFragmentRecord , sb , childHierarchy );
344
- }
275
+ mFragmentation .logFragmentRecords (TAG );
345
276
}
346
277
}
0 commit comments