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なので、タイミングに書きやすいのは遅延トリガのためだと理解できます