我有一个RecycleView滚动式Horizontal,它的每个项目都有一个ScrollView滚动式Vertical。 当我向下滚动ScrollView时,它将记住该位置,并且当我将RecycleView滚动到另一个项目时不会重置到顶部,就像这样:
有人可以给我一个建议,让我在滚动RecycleView时将ScrollView重置为顶部吗?
答案 0 :(得分:1)
您可以这样称呼:
scrollView.fullScroll(ScrollView.FOCUS_TOP)
或者这个:
scrollView.scrollTo(0,0);
,您可以在初始化viewHolder时在适配器的onBindeViewHolder中使用它,也可以将滚动侦听器附加到RecyclerView并使用滚动侦听器检测滚动
也许是这样!
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
LinearLayoutManager linearLayoutManager = (LinearLayoutManager) recyclerView.getLayoutManager();
int fVitem = linearLayoutManager.findFirstVisibleItemPosition();
int lVitem = linearLayoutManager.findLastVisibleItemPosition();
for (int i = fVitem; i <= lVitem; i++) {
View view = linearLayoutManager.findViewByPosition(i);
ScrollView scrollView;
if (view.getTag() != null) scrollView = (ScrollView) view.getTag();
else {
scrollView = view.findViewById(R.id.myScrollView);
view.setTag(scrollView);
}
scrollView.scrollTo(0, 0);
}
}
});
但是我认为如果您使用obBindViewHolder会更好地提高性能
答案 1 :(得分:0)
在您检测到RecyclerView滚动时调用此
.
.
.
[my_repo:/branches/calc]
harry = rw
bobby = r
.
.
.