ListView滑動到底部自動加載,仿騰訊新聞.

爲ListView設置一個footerView,佈局爲一個ProgressBar和TextView.

監聽ListView的滑動事件,當滑動狀態爲OnScrollListener.SCROLL_STATE_IDLE(剛滑動完,停止滑動) ,並且當前沒有加載(isLoading爲false)時, 顯示footerView中的佈局,然後異步加載數據requestNews(),拿到網絡數據後,隱藏footerView的佈局.

pullUpfooterView = LayoutInflater.from(mContext).inflate(R.layout.footer_pull_up, null);
        TextView footerTV = (TextView) pullUpfooterView.findViewById(R.id.tv_pull_up_footer);
        footerTV.setText(getResources().getString(R.string.loading));
        newsListView.addFooterView(pullUpfooterView);
        pullUpfooterView.setVisibility(View.GONE);
        //        滑動到底部自動刷新
        newsListView.setOnScrollListener(new OnScrollListener() {

            @Override
            public void onScrollStateChanged(AbsListView view, int scrollState) {
                if (!isLoading && scrollState == OnScrollListener.SCROLL_STATE_IDLE) {
                    if (view.getLastVisiblePosition() == view.getCount() - 1) {
                        isLoading = true;
                        pullUpfooterView.setVisibility(View.VISIBLE);
                        requestNews();
                    }
                }
            }

            @Override
            public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount,
                    int totalItemCount) {

            }
        });


發佈了38 篇原創文章 · 獲贊 45 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章