scrollview下的Expandable Listview的setOnScrollListener()

时间:2016-04-19 07:18:02

标签: android expandablelistview onscrolllistener

我在Scrollview中使用了大约27个可扩展列表视图(在Scrollview中滚动,而不是具有父,子关系的滚动)(一个在选择一些文本后一次可见)。我想在此处添加更多负载,同时用户在滚动listview时到达最后一项。但是setOnScrollListener()在加载数据而不是滚动时立即返回最后一项。在这种情况下,请建议一些使用更多负载的方法。

 listViewsSearchResults[i].setOnScrollListener(new AbsListView.OnScrollListener() {

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

                    }

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

                        if (firstVisibleItem + visibleItemCount == totalItemCount && totalItemCount != 0) {

                            //call API
                            Log.d("ListView ", alphabets[finalI] + " Hit API");

                          }
                        }

                    }
                });

1 个答案:

答案 0 :(得分:0)

如果要在scrollview下使用Expandable Listview的setOnScrollListener(), 你不能在scrollview中使用它,但你可能有另一个解决方案,因为我已经使用并解决了我的问题。

您可以简单地删除Scrollview和listview上方的标题布局,并仅将listview保留在布局文件中。 然后使用headerView作为listview headerView。

创建另一个布局作为layout_headerview.xml,并将标题内容放在此文件中,

最后将它们设置为listview的headerView,

在onCreate()方法中写下以下代码。

LayoutInflater layoutInflater;
View headerView;
layoutInflater = LayoutInflater.from(this);
headerView = layoutInflater.inflate(R.layout.layout_headerview, null);

//add it in your listview
listView.addHeaderView(headerView);

// to access headerView widgets you may use below,
iv_overlay = (ImageView) headerView.findViewById(R.id.iv_overlay);