如何在滚动条上获取Recyclerview的Top Item

时间:2016-03-20 12:22:28

标签: android android-recyclerview

感谢您花费宝贵的时间阅读此主题。 我正在开发一个Android应用程序,在recyclerview的项目中有recyclelerview。

我想在滚动recyclelerview(parent recyclelerview)到达第一项父项的上部位置时执行某项任务(即;如果第一项的上部位置完全可见)。

到目前为止我已经尝试了这个但是没有达到我想要的结果

    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);
            }


        }
    });

1 个答案:

答案 0 :(得分:0)

通过使用这两种方法的组合,您可以存档所需的内容。

 if (linearLayoutManager1.findFirstVisibleItemPosition() == 0
     && linearLayoutManager1.findFirstCompletelyVisibleItemPosition() == 0) {

    // reach first fully visible item.

}

来自操作问题代码段..

  1. 要注意linearLayoutManager1的NullPointerException,请检查null
  2. 请注意linearLayoutManager1的ClassCastException,检查instanceof
相关问题