2025-05-24

1.滾動加載
listView.setOnScrollListener(new OnScrollListener() {
    //添加滾動條滾到最底部,加載餘下的元素
    @Override
    public void onScrollStateChanged(AbsListView view, int scrollState) {
        if (scrollState == OnScrollListener.SCROLL_STATE_IDLE) {
            loadRemnantListItem();
        }
    }
    @Override
    public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {}
    });
listView.setOnItemSelectedListener(new OnItemSelectedListener() {
    //按鍵選擇List中的item,焦點落在最下面的view上加載餘下的item
    @Override
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
        if(footerView == view) {
            loadRemnantListItem();
            listView.setSelection(position – 1);
        }
    }
    @Override
    public void onNothingSelected(AdapterView<?> parent) {}
    });
private void loadRemnantListItem() {//滾到加載餘下的數據
    //動態的改變listAdapter.getCount()的返回值
    //使用Handler調用listAdapter.notifyDataSetChanged();更新數據
}
2.滾動翻頁
listView監聽器代碼相同
private void loadRemnantListItem() {//滾到加載餘下的數據
    //重新listView.setAdapter(newsAdapter);
    //使用Handler調用listAdapter.notifyDataSetChanged();更新數據
}
註:在listView最下面可以試用listView.addFooterView(footerView, null, true);來顯示“加載中…”等的字樣來美化用戶體驗,在loadRemnantListItem()方法中動態控制“加載中…”的顯示和不顯示

摘自 與時俱進

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *