-
Notifications
You must be signed in to change notification settings - Fork 2.1k
6. 使用场景- Back键的事件传递机制
YoKey edited this page Nov 25, 2016
·
1 revision
Fragmentation库提供一个类似Android事件分发机制的Back键监听机制:
按下Back键,事件首先传递到Activity内栈顶的Fragment,如果该Fragment有子Fragment,则传递到子栈内的栈顶子Fragment,依次类推;
如果栈顶子Fragment不处理该事件,则向上传递(栈底还有子Fragment则向栈底传递,如果没有则向父Fragment传递,最终到SupportActivity)
如果处理该事件,则消费该事件,不再向上传递。
- 对于SupportActivity
注意:请不要复写onBackPressed()方法,改为复写onBackPressedSupport();
// 任意Fragment的onBackPressedSupport()返回true,该方法都不会被回调
@Override
public void onBackPressedSupport() {
// super的实现为:
// if (getSupportFragmentManager().getBackStackEntryCount() > 1) {
// mFragmentation.back(getSupportFragmentManager());
// } else {
// finish();
// }
super.onBackPressedSupport();
}
- 对于SupportFragment
如果return true,则消费该事件,不再向上传递。
@Override
public boolean onBackPressedSupport() {
// 默认flase,继续向上传递
return super.onBackPressedSupport();
}