RecyclerViewMain

来源:互联网 发布:九龙拉车网络玄幻小说 编辑:程序博客网 时间:2024/06/03 21:35
package com.bwie.recyclerviewdemo2;


import android.os.Handler;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.DividerItemDecoration;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.View;
import android.widget.ProgressBar;
import android.widget.Toast;


import java.util.ArrayList;
import java.util.List;


public class MainActivity extends AppCompatActivity {


    private RecyclerView recyclerView;
    private List<String> list;
    private MyAdapter adapter;
    private SwipeRefreshLayout swipeRefreshLayout;
    private ProgressBar progressBar;
    private LinearLayoutManager layoutManager;
    private int lastVisibleItem;




    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);




        //初始化数据


        list = new ArrayList<>();


        for (int i = 0; i < 10;++i){
            list.add("Hello World"+i);
        }




        swipeRefreshLayout = findViewById(R.id.swipeRefreshLayout);
        recyclerView = findViewById(R.id.recyclerView);
        progressBar = findViewById(R.id.progressBar);






        //线性布局管理器
        layoutManager = new LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false);


        recyclerView.setLayoutManager(layoutManager);


        recyclerView.addItemDecoration(new DividerItemDecoration(this,DividerItemDecoration.VERTICAL));


        adapter = new MyAdapter(this,list);
        recyclerView.setAdapter(adapter);






        swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
            @Override
            public void onRefresh() {


                //当用户下拉的时候会被执行


                //Toast.makeText(MainActivity.this, "下拉了", Toast.LENGTH_SHORT).show();


                onUpdate();


            }
        });




        recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
            @Override
            public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
                super.onScrollStateChanged(recyclerView, newState);


                switch (newState){




                    case RecyclerView.SCROLL_STATE_IDLE://静止状态
                    {




                        System.out.println("adapter 里有的条目数"+adapter.getItemCount());


                        if(adapter.getItemCount() - 1 == lastVisibleItem){




                            //显示进度条
                            progressBar.setVisibility(View.VISIBLE);




                            new Handler().postDelayed(new Runnable() {
                                @Override
                                public void run() {




                                    List<String> list = new ArrayList<>();


                                    for (int i = 0; i < 10; i++){


                                        list.add("世界,你好"+i);


                                    }
                                    //上拉加载更多
                                    adapter.addMore(list);




                                    //隐藏进度条
                                    progressBar.setVisibility(View.GONE);


                                }
                            },5000);
                        }




                    }
                        break;


                }






            }


            @Override
            public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
                super.onScrolled(recyclerView, dx, dy);




                    //得到最后一个可见条目
                    int firstItem = layoutManager.findFirstVisibleItemPosition();//得到第一个可见条目


                    int lastItem = layoutManager.findLastVisibleItemPosition();


                    lastVisibleItem = firstItem + lastItem;


                System.out.println("条目数 : "+lastItem);








            }
        });


















    }








    public void onUpdate(){




        //模拟网络
        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {




                List<String> list = new ArrayList<>();


                for (int i = 0; i < 10; i++){


                    list.add("你好,世界"+i);


                }




                //下拉刷新
                adapter.update(list);


                //隐藏进度条
                if(swipeRefreshLayout.isRefreshing()){




                    swipeRefreshLayout.setRefreshing(false);


                }








            }
        },5000);




    }




















}
原创粉丝点击