उन लोगों के लिए जिनके पास RecyclerView एडेप्टर के अंदर कार्यान्वित होने का तर्क है, आप अभी भी @ernesto दृष्टिकोण का उपयोग कर सकते हैं, जो कि स्क्रॉललेस्टनर के साथ संयुक्त हो सकता है what you want
क्योंकि RecyclerView से परामर्श किया जाता है। एडेप्टर के अंदर आपके पास कुछ इस तरह होगा:
@Override
public void onAttachedToRecyclerView(@NonNull RecyclerView recyclerView) {
super.onAttachedToRecyclerView(recyclerView);
RecyclerView.LayoutManager manager = recyclerView.getLayoutManager();
if(manager instanceof LinearLayoutManager && getItemCount() > 0) {
LinearLayoutManager llm = (LinearLayoutManager) manager;
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
}
@Override
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
int visiblePosition = llm.findFirstCompletelyVisibleItemPosition();
if(visiblePosition > -1) {
View v = llm.findViewByPosition(visiblePosition);
//do something
v.setBackgroundColor(Color.parseColor("#777777"));
}
}
});
}
}