一、簡介
根據(jù)UI交互需求,增加一個(gè)手勢滑動(dòng)返回的系統(tǒng)交互行為。
對(duì)需要支持滑動(dòng)返回的Activity,請(qǐng)繼承?FlingBackBaseActivity 類,并調(diào)用其setFlingBackMode和setOnFlingBackGestureListener方法
如果需要對(duì)某個(gè)view或v4中的Activity/Fragment 添加滑動(dòng)返回功能,仿照FlingBackBaseActivity 類實(shí)現(xiàn)即可
注:之前我們?cè)贏ctivity.java 和 Fragment.java 中添加了滑動(dòng)返回接口,這是非常壞的做法,已經(jīng)取消
我們應(yīng)盡量減少在frameworks中新開接口,除非迫不得已
二、相關(guān)方法
1、Activity類中的方法:
publicvoidsetFlingBackMode(intflingBackMode);
設(shè)置可以從哪個(gè)方向滑動(dòng)返回,支持向左,向右,向上,向下滑動(dòng)返回,可同時(shí)支持幾種滑動(dòng)返回的組合
參數(shù):
FlingBackHelper.NOT_FLING_BACK// 不支持滑動(dòng)返回
FlingBackHelper.LEFT_FLING_BACK// 支持向左滑動(dòng)返回
FlingBackHelper.RIGHT_FLING_BACK// 支持向右滑動(dòng)返回
FlingBackHelper.UP_FLING_BACK// 支持向上滑動(dòng)返回
FlingBackHelper.DOWN_FLING_BACK// 支持向下滑動(dòng)返回
返回值: 無
例如 ??setFlingBackMode(FlingBackHelper.LEFT_FLING_BACK |FlingBackHelper.RIGHT_FLING_BACK);// 同時(shí)支持向左滑動(dòng)和向右滑動(dòng)
public void setOnFlingBackGestureListener(FlingBackHelper.OnFlingBackGestureListener l)
設(shè)置Activity手勢監(jiān)聽
參數(shù):監(jiān)聽對(duì)象
返回值:無
三、例子
1、在Activity中開啟滑動(dòng)返回:
publicclassActivity1extendsFlingBackBaseActivity {
@Override
publicvoidonCreate(BundlesavedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(...);
setFlingBackMode(FlingBackHelper.LEFT_FLING_BACK| FlingBackHelper.RIGHT_FLING_BACK);
}
}
2、在Fragment中開啟滑動(dòng)返回
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();
// 打開 “左滑+右滑+上滑+下滑” 滑動(dòng)返回功能
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();
// 關(guān)閉 “左滑+右滑+上滑+下滑” 滑動(dòng)返回功能
FlingBackBaseActivityflingBackActivity= (FlingBackBaseActivity)getActivity();
flingBackActivity.setFlingBackMode(FlingBackHelper.NOT_FLING_BACK);
}
}
}