ISupport.java
3.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
package me.yokeyword.fragmentation;
/**
* Created by YoKeyword on 16/6/1.
*/
interface ISupport {
/**
* 加载根Fragment, 即Activity内的第一个Fragment 或 Fragment内的第一个子Fragment
*
* @param containerId 容器id
* @param toFragment 目标Fragment
*/
void loadRootFragment(int containerId, SupportFragment toFragment);
/**
* 以replace方式加载根Fragment
*/
void replaceLoadRootFragment(int containerId, SupportFragment toFragment, boolean addToBack);
/**
* 加载多个根Fragment
*
* @param containerId 容器id
* @param toFragments 目标Fragments
*/
void loadMultipleRootFragment(int containerId, int showPosition, SupportFragment... toFragments);
/**
* show一个Fragment,hide上一个Fragment
* 使用该方法时,要确保同级栈内无多余的Fragment,(只有通过loadMultipleRootFragment()载入的Fragment)
*
* @param showFragment 需要show的Fragment
*/
void showHideFragment(SupportFragment showFragment);
/**
* show一个Fragment,hide一个Fragment ; 主要用于类似微信主页那种 切换tab的情况
*
* @param showFragment 需要show的Fragment
* @param hideFragment 需要hide的Fragment
*/
void showHideFragment(SupportFragment showFragment, SupportFragment hideFragment);
/**
* 启动目标Fragment
*
* @param toFragment 目标Fragment
*/
void start(SupportFragment toFragment);
/**
* 启动目标Fragment
*
* @param toFragment 目标Fragment
* @param launchMode 启动模式
*/
void start(SupportFragment toFragment, @SupportFragment.LaunchMode int launchMode);
/**
* 类似startActivityForResult
*
* @param toFragment 目标Fragment
* @param requestCode requsetCode
*/
void startForResult(SupportFragment toFragment, int requestCode);
/**
* 启动目标Fragment,并pop当前Fragment
*
* @param toFragment 目标Fragment
*/
void startWithPop(SupportFragment toFragment);
/**
* @return 栈顶Fragment
*/
SupportFragment getTopFragment();
/**
* @param fragmentClass 目标Fragment的Class
* @param <T> 继承自SupportFragment的Fragment
* @return 目标Fragment
*/
<T extends SupportFragment> T findFragment(Class<T> fragmentClass);
<T extends SupportFragment> T findFragment(String fragmentTag);
/**
* 出栈
*/
void pop();
/**
* 出栈到目标Fragment
*
* @param fragmentClass 目标Fragment的Class
* @param includeSelf 是否包含目标Fragment
*/
void popTo(Class<?> fragmentClass, boolean includeSelf);
void popTo(String fragmentTag, boolean includeSelf);
/**
* 出栈到目标Fragment,并在出栈后立即进行Fragment事务(可以防止出栈后,直接进行Fragment事务的异常)
*
* @param fragmentClass 目标Fragment的Class
* @param includeSelf 是否包含目标Fragment
* @param afterPopTransactionRunnable 出栈后紧接着的Fragment事务
*/
void popTo(Class<?> fragmentClass, boolean includeSelf, Runnable afterPopTransactionRunnable);
void popTo(String fragmentTag, boolean includeSelf, Runnable afterPopTransactionRunnable);
}