【发布时间】:2016-04-04 13:23:56
【问题描述】:
我需要创建一个类似于星巴克的效果,其中列表视图(或片段)在标签栏上滚动。
我创建了一个标签栏,在它下面我有一个带有回收器视图的 viewpager。我能够将 recyclerview 与标签栏一起移动,但无法创建我的回收器视图(托管在 viewpager 中)在标签栏上滚动的效果。
【问题讨论】:
标签: android android-viewpager android-recyclerview
我需要创建一个类似于星巴克的效果,其中列表视图(或片段)在标签栏上滚动。
我创建了一个标签栏,在它下面我有一个带有回收器视图的 viewpager。我能够将 recyclerview 与标签栏一起移动,但无法创建我的回收器视图(托管在 viewpager 中)在标签栏上滚动的效果。
【问题讨论】:
标签: android android-viewpager android-recyclerview
在您的列表中放置一个 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
【讨论】: