//摘要:關於SwipeBackActivity,主要注意以下幾種情況:
// 1.引入 compile ‘me.imid.swipebacklayout.lib:library:1.0.0’
// 2.將app的主題設置加入 true
// –這樣主題就可以使透明的,不能用默認的主題;使用默認背景就是黑屏了,這個屬性就是設置防止黑屏的。
// 關於阻止黑屏可查看:http://blog.csdn.net/fancylovejava/article/details/39643449
// 3.這個側滑關閉頁面的方法,同時這個三方的包的出處地址是:https://github.com/ikew0ng/SwipeBackLayout(裏面有完整項目),感謝
// 4.滑動關閉有4種形式,在下面已經列舉了
// 5.這裏面已經通過監聽滑動的手勢來設置震動效果了:vibrate方法,(記住在配置文件中得申明震動的權限)
// 6.已經就遇到了,今天終於不是僅僅看人家的代碼了,自己把代碼寫出來真的很好,印象也加深了。
代碼塊語法遵循標準markdown代碼,例如:
“` python
private SwipeBackLayout mSwipeBackLayout;
private static final int VIBRATE_DURATION = 20;
/*
* 滑動關閉當前頁面的方向有四種形式
* 1.SwipeBackLayout.EDGE_RIGHT 右邊關閉頁面
* 2.SwipeBackLayout.EDGE_LEFT 左邊關閉頁面
* 3.SwipeBackLayout.EDGE_BOTTOM 底部關閉頁面
* 4.SwipeBackLayout.EDGE_ALL 以上三種形式關閉頁面
*/
int edgeFlag;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.other_btn).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(MainActivity.this, OtherActivity.class));
}
});
setSwipeBackEnable(true);
mSwipeBackLayout = getSwipeBackLayout();
edgeFlag = SwipeBackLayout.EDGE_RIGHT;
//edgeFlag = SwipeBackLayout.EDGE_LEFT;
//edgeFlag = SwipeBackLayout.EDGE_BOTTOM;
//edgeFlag = SwipeBackLayout.EDGE_ALL;
mSwipeBackLayout.setEdgeTrackingEnabled(edgeFlag);
//震動效果
mSwipeBackLayout.addSwipeListener(new SwipeBackLayout.SwipeListener() {
@Override
public void onScrollStateChange(int state, float scrollPercent) {
}
@Override
public void onEdgeTouch(int edgeFlag) {
vibrate(VIBRATE_DURATION);
}
@Override
public void onScrollOverThreshold() {
vibrate(VIBRATE_DURATION);
}
});
}
/***
* 震動效果
* @param duration
*/
private void vibrate(long duration) {
Vibrator vibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
long[] pattern = {0, duration};
vibrator.vibrate(pattern, -1);
}
/*
* 這是最簡單的方法
* @author yjbo 2016年5月26日18:20:38
*/
public class OtherActivity extends SwipeBackActivity {
private SwipeBackLayout mSwipeBackLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_other);
setSwipeBackEnable(true);
mSwipeBackLayout = getSwipeBackLayout();
int edgeFlag;
edgeFlag = SwipeBackLayout.EDGE_LEFT;
mSwipeBackLayout.setEdgeTrackingEnabled(edgeFlag);
}
}
依賴:重點內容
dependencies {
compile fileTree(dir: ‘libs’, include: [‘*.jar’])
testCompile ‘junit:junit:4.12’
compile ‘com.android.support:appcompat-v7:23.4.0’
compile ‘me.imid.swipebacklayout.lib:library:1.0.0’
}
true
本文中的源碼地址:(http://download.csdn.net/detail/yangjianbo456/9532344)