I'm trying to get position of first visible item in RecyclerView, because I need some information about it (e.g. title). Unfortunately when I'm using LayoutManager.findFirstVisibleItemPosition()
it returns 0, all the time.
Moreover, my RecyclerView is located in NestedScrollView. All this items are in PageAdapter (TabLayout).
Here is my two method for setting up RecyclerView:
private void initializeAdapter() {
NaBiezacoAktualnosciAdapter adapter = new NaBiezacoAktualnosciAdapter(items, getContext());
recyclerView.setAdapter(adapter);
}
private void initializeLayoutManager(final View v) {
final ExpansiveLayoutManager llm = new ExpansiveLayoutManager(getActivity());
recyclerView.setLayoutManager(llm);
recyclerView.setNestedScrollingEnabled(false);
recyclerView.setHasFixedSize(true);
recyclerView.addOnItemTouchListener(
new RecyclerItemClickListener(getContext(), new RecyclerItemClickListener.OnItemClickListener() {
@Override
public void onItemClick(View view, int position) {
}
})
);
NestedScrollView nestedScrollView = (NestedScrollView) v.findViewById(R.id.nested);
nestedScrollView.setOnScrollChangeListener(new NestedScrollView.OnScrollChangeListener() {
@Override
public void onScrollChange(NestedScrollView v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
int firstVisibleCard = llm.findFirstCompletelyVisibleItemPosition();
int lastVisibleCard = llm.findLastCompletelyVisibleItemPosition();
Log.d("aaaa", "firstVisibleCard= " + firstVisibleCard);
Log.d("aaaa", "lastVisibleCard= " + lastVisibleCard);
}
});
}
Do anybody have idea how to make this work? I'd be glad for any advice :)