本來是要做乙個上下滑動的布局,但是裡面還要巢狀乙個可以上下滑動且上拉重新整理的布局。如下圖:
使用nestedscrollview+recycleview可以解決滑動衝突的問題,但是上拉重新整理會卡頓。
猜想:應該是頂層布局對事件進行了攔截,沒有把觸控事件下發。
試驗:重寫nestedscrollview的攔截事件onintercepttouchevent()判斷其是否已經拉到最後且判斷其是上拉還是下拉。
可能**不夠精緻,但是基本功能已實現。
**如下:
public
class
pulltofreshscrollview
extends
nestedscrollview
public
pulltofreshscrollview
(context context, attributeset attrs)
@override
public
boolean
onintercepttouchevent
(motionevent ev)
break
;case motionevent.action_move:
mlasty = ev.
gety()
;if(islast()
&&(mlasty-mactiondown<0)
)}return
super
.onintercepttouchevent
(ev);}
private
boolean
islast()
return
false;}
}
為什麼重寫了這個方法就不衝突了呢,要了解一下view和viewgroup的touch事件。
view和viewgroup都有touchevent和dispatchtouchevent事件。
touchevent即消費事件;
dispatchtouchevent是決定事件是否分發給下一級;
而viewgroup比view多了乙個onintercepttouchevent事件,決定分發這個事件後還要決定是否攔截這個分發,返回false表示不攔截,可以向下分發,返回true則表示自身消費了,不往下發。
Angular 上拉重新整理
1.先不做上拉觸發,用button模擬一下,觸發函式 export class studycomponent implements oninit subscribe constructor 獲取資料 getdata 滾動觸發函式 scrol 模擬介面返回資料 serve html list asyn...
下拉重新整理上拉載入
implements ixlistviewlistener 在oncreat裡面寫的 下拉重新整理是否啟用 xlistview.setpullrefreshenable true 載入更多是否啟用 xlistview.setpullloadenable true xlistview重新整理和載入更多...
下拉重新整理上拉載入
下拉載入上拉重新整理 需求 看看包是否有錯 然後在布局中把listview 改為 xlistview檔名 在activity找到控制項 xlistview xlistview view.findviewbyid r.id.xlistview xlistview setpullloadenable t...