前言:
用最簡單的例子來說明此問題。
1.在activity中加上預設的布局layout
2.在自定義的layout中實現右滑關閉activity的邏輯
直接上**!
自定義的布局hffinishrelativelayout!
package com.huofar.widget;
import android.content.context;
import android.content.res.typedarray;
import android.util.attributeset;
import android.view.motionevent;
import android.view.viewgroup;
import android.widget.relativelayout;
import com.huofar.util.logutil;
/** * created by zhangxiwei on 14/11/25.
*/public class hffinishrelativelayout extends relativelayout
fragmentactivity activity;
private scrollleftfinishlistener scrollleftfinishlistener;
public void setscrollleftfinishlistener(scrollleftfinishlistener scrollleftfinishlistener)
// 滑動距離及座標
private float xdistance, ydistance, xlast, ylast;
public hffinishrelativelayout(context context)
public hffinishrelativelayout(context context, attributeset attrs)
public void attachtoactivity(fragmentactivity activity) );
int background = a.getresourceid(0, 0);
a.recycle();
viewgroup decor = (viewgroup) activity.getwindow().getdecorview();
viewgroup decorchild = (viewgroup) decor.getchildat(0);
decorchild.setbackgroundresource(background);
decor.removeview(decorchild);
addview(decorchild);
decor.addview(this);
}@override
public boolean onintercepttouchevent(motionevent event)
return super.onintercepttouchevent(event);
}
@override
public boolean dispatchtouchevent(motionevent event)
}xlast = curx;
ylast = cury;
}return super.dispatchtouchevent(event);
}@override
public boolean ontouchevent(motionevent event)return true;}
}
重點**上面的紅色加粗字段。
我處理的是每次滑動向右滑動300px執行關閉操作,在需要的使用的activity實現藉口直接finish就ok了!
activity中的呼叫:
package com.huofar.activity;
import android.os.bundle;
import android.os.handler;
import android.view.layoutinflater;
import com.huofar.r;
import com.huofar.widget.hffinishrelativelayout;
/** * created by zhangxiwei on 14/11/25.
*/public class hfbaseactivity extends fragmentactivity implements hffinishrelativelayout.scrollleftfinishlistener
},1000);
}public void setfinishscrollleft(boolean isfinishscrollleft) }}
@override
public void finishpage()
}
所有的**就是這點,延遲一秒的就是為了接受isfinishscrollleft變數,我是在已有的工程中修改的,就是為了在有些頁面不需要關閉傳此變數就ok了!。方法有點笨。大家有好方法可以提供。先多謝!
接下來就是頭疼的問題,為什麼要這麼做:
除此之外看的迷迷糊糊的可以自己寫乙個demo實踐一下 或者多google幾個介紹看看,就是事件的傳遞,然後在dispatchtouchevent接受一下。然後直接關閉就行。
其實也沒有什麼,幫助想要該功能的童鞋。
有什麼問題可以跟帖詢問。
補上activity_finish_base.xml
<?xml version="1.0" encoding="utf-8"?>
ios 滑動手勢向右移動
我們來學習滑動手勢。人類最擅長的就是使用工具,手機是我們人類內心世界的延伸,我們渴望擁有上帝的力量。所以我們自己創造了乙個世界,網際網路。我們可以控制裡面所有的一切。現在我們來控制一張是怎麼向右移動的。在現實世界,我們是怎麼控制物體移動呢?是不是要給它施加乙個方向的力,然後它就會朝我們遇到的方向移動...
Appium scroll滑動頁面
方法介紹 舉個例子 encoding utf 8 from time import sleep desired caps driver webdriver.remote desired caps sleep 15 獲取手機螢幕寬 高 x driver.get window size width y ...
Android彈性滑動
1 view使用scroller滑動 在scroller.startscroll 方法中,會將scrollx和deltax相加存入mfinalx中 invalidate 方法會呼叫draw 方法,draw 會呼叫computescroll 方法,而在view 中computescroll 方法是空實...