首先加入開源庫
compile 'me.imid.swipebacklayout.lib:library:1.0.0'
使當前的Activity繼承SwipeBackActivity
public class BaseActivity extends SwipeBackActivity{
privateSwipeBackLayoutmSwipeBackLayout;
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
mSwipeBackLayout=getSwipeBackLayout();//設置滑動方向,可設置EDGE_LEFT, EDGE_RIGHT, EDGE_ALL,
EDGE_BOTTOMmSwipeBackLayout
.setEdgeTrackingEnabled(SwipeBackLayout.EDGE_LEFT);
}}
在使用的主題中添加下面的屬性,否則滑動時activity的下層是黑色的
android:windowIsTranslucent true
當使用BaseActivity時,為了使首頁不會滑動刪除,只需如下設置即可
setSwipeBackEnable(false);//禁止滑動刪除
另外,這個滑動刪除的效果只能從邊界滑動才有效果,如果要擴大touch的范圍,可以調用mSwipeBackLayout.setEdgeSize(intsize);
但是上面這個方法不太好用,效果不明顯,推薦修改ViewDragHelper.java這個類源碼中的getEdgeTouched(int x, int y)方法,如下
privateintgetEdgeTouched(intx,inty){intresult=0;result=EDGE_LEFT;
//這樣每次都是全屏左滑刪除//解決只有點擊屏幕左邊才有響應的問題/*if (x < mParentView.getLeft() + mEdgeSize)
result = EDGE_LEFT;
if (y < mParentView.getTop() + mEdgeSize)
result = EDGE_TOP;
if (x > mParentView.getRight() - mEdgeSize)
result = EDGE_RIGHT;
if (y > mParentView.getBottom() - mEdgeSize)
result = EDGE_BOTTOM;*/returnresult;
}