一、简介
根据UI交互需求,增加一个手势滑动返回的系统交互行为。
对需要支持滑动返回的Activity,请继承 FlingBackBaseActivity 类,并调用其setFlingBackMode和setOnFlingBackGestureListener方法
如果需要对某个view或v4中的Activity/Fragment 添加滑动返回功能,仿照FlingBackBaseActivity 类实现即可
注:之前我们在Activity.java 和 Fragment.java 中添加了滑动返回接口,这是非常坏的做法,已经取消
我们应尽量减少在frameworks中新开接口,除非迫不得已
二、相关方法
1、Activity类中的方法:
publicvoidsetFlingBackMode(intflingBackMode);
设置可以从哪个方向滑动返回,支持向左,向右,向上,向下滑动返回,可同时支持几种滑动返回的组合
参数:
FlingBackHelper.NOT_FLING_BACK// 不支持滑动返回
FlingBackHelper.LEFT_FLING_BACK// 支持向左滑动返回
FlingBackHelper.RIGHT_FLING_BACK// 支持向右滑动返回
FlingBackHelper.UP_FLING_BACK// 支持向上滑动返回
FlingBackHelper.DOWN_FLING_BACK// 支持向下滑动返回
返回值: 无
例如 setFlingBackMode(FlingBackHelper.LEFT_FLING_BACK |FlingBackHelper.RIGHT_FLING_BACK);// 同时支持向左滑动和向右滑动
public void setOnFlingBackGestureListener(FlingBackHelper.OnFlingBackGestureListener l)
设置Activity手势监听
参数:监听对象
返回值:无
三、例子
1、在Activity中开启滑动返回:
publicclassActivity1extendsFlingBackBaseActivity {
@Override
publicvoidonCreate(BundlesavedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(...);
setFlingBackMode(FlingBackHelper.LEFT_FLING_BACK| FlingBackHelper.RIGHT_FLING_BACK);
}
}
2、在Fragment中开启滑动返回
publicclassActivity3extendsFlingBackBaseActivity {
@Override
publicvoidonCreate(BundlesavedInstanceState) {
super.onCreate(savedInstanceState);
// Create the ListFragment and add it as our sole content.
FragmentManagerfm=this.getFragmentManager();
if(fm.findFragmentById(android.R.id.content) ==null) {
SimpleFragmentf=newSimpleFragment();
fm.beginTransaction().add(android.R.id.content,f).commit();
}
}
publicstaticclassSimpleFragmentextendsFragment {
。。。。
@Override
publicvoidonStart() {
super.onStart();
// 打开 “左滑+右滑+上滑+下滑” 滑动返回功能
FlingBackBaseActivityflingBackActivity= (FlingBackBaseActivity)getActivity();
flingBackActivity.setFlingBackMode(FlingBackHelper.LEFT_FLING_BACK| FlingBackHelper.RIGHT_FLING_BACK|
FlingBackHelper.UP_FLING_BACK| FlingBackHelper.DOWN_FLING_BACK);
}
@Override
publicvoidonStop() {
super.onStop();
// 关闭 “左滑+右滑+上滑+下滑” 滑动返回功能
FlingBackBaseActivityflingBackActivity= (FlingBackBaseActivity)getActivity();
flingBackActivity.setFlingBackMode(FlingBackHelper.NOT_FLING_BACK);
}
}
}
网友评论