我'm trying to get position of first visible item in RecyclerView, because I need some information about it (e.g. title). Unfortunately when I'使用 LayoutManager.findFirstVisibleItemPosition()
它一直返回0 . 此外,我的RecyclerView位于NestedScrollView中 . 所有这些项目都在PageAdapter(TabLayout)中 . 这是我设置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);
}
});
}
有人知道如何使这项工作?任何建议我都很高兴:)