特定视图是否已滚动到列表视图之外?

时间:2018-09-12 12:27:32

标签: android listview

我正在编写一个具有视频ListView的应用程序,并且如果用户播放其中一个视频并滚动列表,以使该特定视图在屏幕上不再可见,则必须暂停视频,并应将MediaPlayer暂停已发布。

所以我的问题是,有什么方法可以知道一个视图已在ListView中滚动出来,而不是在ScrollView中吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

这对我有用:

listView.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 the result is false so mediaPlayer must be released
            if (videoCurrentPosition != -1 && !checkExistence(firstVisibleItem, visibleItemCount)) adapter.releaseMediaPlayer();

        }
    });

videoCurrentPosition显示我单击的项目的位置。设置为-1,因为适配器中的位置从0开始。

private Boolean checkExistence(int firstVisibleItem, int visibleItemCount) {


    for (int i = firstVisibleItem; i <= (firstVisibleItem + visibleItemCount - 1); i++) {

        // if it's true so our view is inside the list (on screen now)
        if (videoCurrentPosition == i) return true;

    }

    // if it's false so our view is'nt inside the list (not screen now)
    return false;

}