android - 在 android listview 中使用 onScroll

标签 android listview android-listview android-scrollview android-scroll

friend ,我正在使用 listview 并在到达末尾时在滚动上加载内容。但是我遇到了错误,比如如果快速滚动,有人可以帮助我解决这个问题,那么同一个 url 被调用了不止一次。我经历了 SCROLL_STATE_IDLE 但不知道如何在我的代码中实现相同的功能。即使我不触摸屏幕,它也会运行。我现在想知道如何在空闲状态下停止代码。在下面附上我的代码

int start = 0;
int limit = 3;
loadingMore = false;
listView.setOnScrollListener(new OnScrollListener() {

        @Override
        public void onScrollStateChanged(AbsListView view, int scrollState) {
            // TODO Auto-generated method stub
                            }

        }

        @Override
        public void onScroll(AbsListView view, int firstVisibleItem,
                int visibleItemCount, int totalItemCount) {
            // TODO Auto-generated method stub
            int lastInScreen = firstVisibleItem + visibleItemCount;


            if ((lastInScreen == totalItemCount) ) {

                if(loadingMore == false){                   
                start = lastInScreen - 1;                   
                url = "http://www.dskjhf.com/web-servic/request_response.php?type=get_articles&start="
                        + start + "&end=" + limit;
                grabURL(url);                   
            }
        }}
    });

    protected void grabURL(String url) {
    // TODO Auto-generated method stub
    new BackgroundTask().execute(url);
    loadingMore = true;
}

最佳答案

检查了这个它会对你有帮助..对我来说它运行良好

        listView.setOnScrollListener(new OnScrollListener() {
            private int currentVisibleItemCount;
            private int currentScrollState;
            private int currentFirstVisibleItem;
            private int totalItem;
            private LinearLayout lBelow;


            @Override
            public void onScrollStateChanged(AbsListView view, int scrollState) {
                // TODO Auto-generated method stub
                this.currentScrollState = scrollState;
                this.isScrollCompleted();               
            }

            @Override
            public void onScroll(AbsListView view, int firstVisibleItem,
                    int visibleItemCount, int totalItemCount) {
                // TODO Auto-generated method stub
                this.currentFirstVisibleItem = firstVisibleItem;
                this.currentVisibleItemCount = visibleItemCount;
                this.totalItem = totalItemCount;


            }

            private void isScrollCompleted() {
                if (totalItem - currentFirstVisibleItem == currentVisibleItemCount
                        && this.currentScrollState == SCROLL_STATE_IDLE) {
                 /** To do code here*/

                    Page = Page + 1;
                    apiVariables = TCGAPIVariable.getSingletonObject();
                    searchUrl = apiVariables.searchList(cityId, catId, area,
                            keyword, cuisine, type, cost, "" + Page, "20",uId);
                    Log.d("SEARCH_URL", searchUrl.trim());
                    int totalRecord = Integer.parseInt(itemData.get(0)
                            .getTotalRecord());
                    if (totalRecord > totalItem) {
                        if (TCGStaticMethods
                                .isInternetAvailable(SearchActivity.this))
                            new SearchAsynTask(SearchActivity.this, searchUrl,
                                    true).execute();
                    } else {
                        LinearLayout llBelow = (LinearLayout) findViewById(R.id.pbSearchLististingBelow);
                        llBelow.setVisibility(View.GONE);
                    }
                }
            }
        });

关于android - 在 android listview 中使用 onScroll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26293461/

相关文章:

java - android.content.res.Resources$NotFoundException : String resource ID #0x0

android - 带复选框的 ListView 在滚动时变形

android - 如何使用来自外部文件而不是来自 res/values/strings.xml 文件的数据填充 Android 中的 ListView

Android achartengine 简单饼图

android - Android动画无法正常运行-无法播放,希望在声音文件停止播放时停止播放

android - 错误::在 Apache Cordova 中打包 APK 期间出现重复文件

android - 如果受主题颜色影响, ListView 的颜色

php - 填充 ListView 的服务内的 AsyncTask

java - 如何在使用 ViewFlipper 的 showNext() 后更改 ListFragment 的 ListView?

java - 安卓 : Need help in implementing ACRA