我需要创建类似于星巴克的效果,在该效果中,列表视图(或片段)在选项卡栏上滚动。
android - Android:标签栏上方的回收站 View-LMLPHP

我创建了一个标签栏,下面有一个带有回收器视图的viewpager。我能够将recyclerview和选项卡栏一起移动,但是无法在recycler视图(在viewpager中托管)在选项卡栏上滚动的地方产生效果。

最佳答案

将scrollListener放在列表中,并在滚动中向主体添加一些动画,以使其在栏上滚动

 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) { movingBody.setTranslationY(getScroll());}}

protected int getScroll() {// as list recycles views , getscrollY wont give us how much it has scrolled, hence we use this hack
    View firstChildInList = listView.getChildAt(0);
    if (firstChildInList == null) return 0;
    return firstChildInList.getTop() + listView.getFirstVisiblePosition() * firstChildInList.getHeight();
}


获取滚动用于确定您已滚动多少以停止翻译动画
您可以设置自己的动画开始和停止条件,而不是使用getScroll

08-04 08:36