Androidのドロップダウン・リフレッシュ
2494 ワード
mSwipeRefreshLayout=messageLayout.findViewById(R.id.swipe_fresh);
mSwipeRefreshLayout.setRefreshing(true);
private void initView(){
mSwipeRefreshLayout.setOnRefreshListener(() -> {
index();
});
}
この件は発起の要請を更新しなければならない.
public void refresh (Integer page,Integer type ){
String url = "
MyHttp.okHttpGet(mContext,url,new MyCallBackUtil(){
public void onSuccess(Context context, JSONObject response) {
try {
Log.d(TAG, " " + response);
items = response.getJSONArray("items");
notifyDataSetChanged();
} catch (JSONException e) {
e.printStackTrace();
}
}
});
}
mNestedScrollView.setOnScrollChangeListener((NestedScrollView.OnScrollChangeListener) (v, scrollX, scrollY, oldScrollX, oldScrollY) -> {
if (scrollY > oldScrollY) {
//
}
if (scrollY < oldScrollY) {
//
}
if (scrollY == 0) {
//
}
if (scrollY == (v.getChildAt(0).getMeasuredHeight() - v.getMeasuredHeight())) {
//
Log.d(TAG, " : ");
new Handler().postDelayed(new Runnable(){
public void run() {
sendMoreRequest();
}
}, 1000);
}
});
mRecyclerView.setAdapter(mAdaptaer);
getMeasuredHeight() View ,
getHeight
,getMeasuredHeight() getHeight()
つまり、スクロールの距離は総長さから1つの画面の大きさを差し引くことに等しい.
このように減らすのはマイナスの2マイナス1が1マイナス2マイナス1なので、タイミングに書きやすいのは遅延トリガのためだと理解できます