Android fragment 回调函数改进
由于fragment的onResume()等回调的调用时机与Activity不一样,导致用起来比较麻烦,所以我重新封装了一下回调函数,十分简单。
使用时只需要继承此基类,使用onFragmentXXX系列回调即可。
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 |
public
class
AbsFragment extends
Fragment { /*------------------------------------- * 属性 *-------------------------------------*/ /**是否已经onResume()了*/ private
boolean
isResume = false ; /**setUserVisibleHint(boolean)传入的值*/ private
boolean
isVisbleToUser = false ; /*------------------------------------- * protected方法 *-------------------------------------*/ /** * Fragment创建时调用的函数,建议子类重写这个方法因为生命周期比较简单 * @param savedInstanceState */ protected
void
onFragmentCreate(Bundle savedInstanceState) { } /** * Fragment销毁时调用的函数,建议子类重写这个方法因为生命周期比较简单 * @param savedInstanceState */ protected
void
onFragmentDestroy() { } /** * Fragment可见时调用的函数,建议子类重写这个方法因为生命周期比较简单 * @param savedInstanceState */ protected
void
onFragmentResume() { } /** * Fragment不可见时调用的函数,建议子类重写这个方法因为生命周期比较简单 * @param savedInstanceState */ protected
void
onFragmentPause() { } /*------------------------------------- * public方法 *-------------------------------------*/ @Override public
void
onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); onFragmentCreate(savedInstanceState); } @Override public
void
onDestroy() { onFragmentDestroy(); super .onDestroy(); } @Override public
void
onResume() { super .onResume(); isResume = true ; if (isVisbleToUser) { onFragmentResume(); } } @Override public
void
onPause() { isResume = false ; if (isVisbleToUser) { onFragmentPause(); } super .onPause(); } @Override public
void
setUserVisibleHint( boolean
isVisibleToUser) { super .setUserVisibleHint(isVisibleToUser); this .isVisbleToUser = isVisibleToUser; if (isResume) { if (isVisibleToUser) { onFragmentResume(); } else
{ onFragmentPause(); } } } } |
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。