【发布时间】:2016-03-20 12:22:27
【问题描述】:
感谢您抽出宝贵的时间阅读此主题。 我正在开发一个 android 应用程序,其中 recyclerview 的项目中有 recyclerview。
我想在滚动 recyclerview(parent recyclerview) 到达父项的第一项的上部位置时执行一些任务(即,如果第一项的上部位置完全可见)。
到目前为止我已经尝试过了,但它没有给出我需要的结果
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
}
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
LinearLayoutManager linearLayoutManager1 = (LinearLayoutManager) recyclerView.getLayoutManager();
int displayedPosition = linearLayoutManager1.findFirstCompletelyVisibleItemPosition();
if(displayedPosition==0){
//Is this the place where top position of first item is reached ?
((ControllableAppBarLayout) getActivity().findViewById(R.id.app_bar_layout)).expandToolbar(true);
}
}
});
【问题讨论】:
-
您的代码看起来正确。你测试过吗?顺便说一句,为什么不测试 'dy == 0' 呢?这会给你同样的结果。
-
我打印了日志,但我什至看不到打印的日志:(
-
此代码适用于简单的 recyclerview。但在嵌套的 recylerview 中它不起作用。
标签: android android-recyclerview