【问题标题】:Android GridView scrolling loopAndroid GridView 滚动循环
【发布时间】:2016-08-10 08:35:47
【问题描述】:

我正在使用一个加载数据的gridview,并且我已经设置了它,当它滚动到底部时开始加载更多数据。问题是网格自己进入一个循环,因为当第一个数据被加载或第二次添加到网格中时。网格将其检测为“底部”并重新开始...... 我尝试添加一个 bool 来检测何时是第一次,但第二次总是启动循环。

这是我的滚动代码:

androidGridView.setOnScrollListener(new AbsListView.OnScrollListener(){
            @Override
            public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount)
            {
                if(firstVisibleItem + visibleItemCount >= totalItemCount){
                    EditText rl1 = (EditText) findViewById(R.id.editText);
                    new SearchTask().execute(rl1.getText().toString());
                }
            }

            @Override
            public void onScrollStateChanged(AbsListView view, int scrollState){

            }
        });

谢谢!

【问题讨论】:

    标签: java android loops gridview scroll


    【解决方案1】:

    在您的 onScrollStateChanged 中,您可以检测用户是否滚动。有了这些信息,您就可以防止您遇到的问题。这是一个例子:

            static boolean userScrolled = false;
    
            androidGridView.setOnScrollListener(new AbsListView.OnScrollListener(){
                @Override
                public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount)
                {
                    if(userScrolled == true && (firstVisibleItem + visibleItemCount >= totalItemCount)){
                        EditText rl1 = (EditText) findViewById(R.id.editText);
                        new SearchTask().execute(rl1.getText().toString());
                    }
                }
    
                @Override
                public void onScrollStateChanged(AbsListView view, int scrollState){
                    if(scrollState == OnScrollListener.SCROLL_STATE_TOUCH_SCROLL){
                        userScrolled = true;
                    }   
                }
            });
    

    【讨论】:

    • 你忘记在执行时再次将 userScrolled 设为 false xD 但是谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多