我需要创建类似于星巴克的效果,在该效果中,列表视图(或片段)在选项卡栏上滚动。
我创建了一个标签栏,下面有一个带有回收器视图的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