Swipe Refresh Layout + Recycler View + Base Quick Adapter, 당신만의 업로드, 드롭다운 리셋 컨트롤

11605 단어 안드로이드
개편: Swipe Refresh Layout은 구글의 친생으로서 매우 유용한 컨트롤러이다. 미중에 부족한 것은 Swipe Refresh Layout은 밑에 새로 고침 방법만 있고 위에 더 많은 방법을 제공하지 않는다는 것이다. 이를 위해BaseQuick Adapter와 함께 사용하면 대부분의 위에 더 많은 새로 고침 수요를 충족시킬 수 있다. 다음은 구체적인 용법이다.
1, module 종속성 구성:
 
  
implementation 'com.android.support:support-v4:26.0.2'
implementation 'com.android.support:recyclerview-v7:26.0.2'
compile 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.28'

2.activity xml布局:

 
  
< android.support.v4.widget.SwipeRefreshLayout
android :id= "@+id/swiperefreshlayout"
android :layout_width= "match_parent"
android :layout_height= "match_parent" >
< android.support.v7.widget.RecyclerView
android :id= "@+id/recylerview"
android :layout_width= "match_parent"
android :layout_height= "match_parent" />
android.support.v4.widget.SwipeRefreshLayout >

3.添加自己的Bean实体类

4.自定义Adapter继承BaseQuickAdapter

      convert(BaseViewHolder helper, Beans item)     ,    
helper.setText(int id,String str)     
helper.setImageResource(int id,int resouceId)    
helper.addOnClickListener(int id)      
helper.setVisible(int id,boolean isInvisible)    invisible
helper.setGone(int id,boolean isVisiable)true visible,false gone

5.activity:
1, 데이터 초기화 및 adapter 바인딩 recylerView:
swipeRefreshLayout = view.findViewById(R.id.swiperefreshlayout);
recyclerView = view.findViewById(R.id.recylerview);
itemList = new ArrayList<>();
adapter = new HisOrderAdapter(R.layout.layout_his_order,itemList,status);
recyclerView.setAdapter(adapter);
adapter.bindToRecyclerView(recyclerView);
adapter.setEnableLoadMore(true);
adapter.openLoadAnimation();
adapter.disableLoadMoreIfNotFullPage();
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity(),LinearLayoutManager.VERTICAL,false));
adapter.setEmptyView(R.layout.view_nodata);

2, adapter를 설정하여 더 많은 스니퍼 이벤트를 로드합니다.
adapter.setOnLoadMoreListener(new BaseQuickAdapter.RequestLoadMoreListener() {
    @Override
    public void onLoadMoreRequested() {
        recyclerView.postDelayed(new Runnable() {
            @Override
            public void run() {
                    httpLoadMore();
            }
        },1000);


    }
}, recyclerView);

3, SwipeRefreshLayout 로드 데이터 수신을 설정합니다.
swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
    @Override
    public void onRefresh() {
        refresh();
    }
});

4, adapter 설정 하위 컨트롤 클릭 감청 이벤트:
adapter.setOnItemChildClickListener(new BaseQuickAdapter.OnItemChildClickListener() {
    @Override
    public void onItemChildClick(BaseQuickAdapter adapter, View view, int position) {
        switch (view.getId()){
            case R.id.:
                
                break;
            case R.id.:
                
                break;

        }
    }
});

5.adapter 설정 자체 item 클릭 감청 이벤트:
adapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
    @Override
    public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
        
    }
});

6. 고려 사항:
SwipeRefreshLayout이 로드되면 애니메이션을 종료하는 방법은 다음과 같습니다.
swipeRefreshLayout.setRefreshing(false);

adapter가 로드되면 애니메이션을 종료하는 방법은 다음과 같습니다.
adapter.loadMoreComplete(); adapter.loadMoreEnd();

adapter 업데이트 데이터 방법은 다음과 같습니다.
adapter.setNewData(list);

오케이, 큰일 났다.
ps:BaseQuickAdapter github 주소:https://github.com/CymChad/BaseRecyclerViewAdapterHelper.대단해, 관심 있는 사람은 see see로 갈 수 있어.

좋은 웹페이지 즐겨찾기