android - RecyclerView onScrolled not called when use scrollToPosition -


i have recyclerview.onscrolllistener this

findviewbyid(r.id.button_scroll_to_position).setonclicklistener(new view.onclicklistener() {     @override     public void onclick(view view) {         mlinearlayoutmanager.scrolltopositionwithoffset(2,0);     } });   mrecyclerview.addonscrolllistener(new recyclerview.onscrolllistener() {     @override     public void onscrolled(recyclerview recyclerview, int dx, int dy) {         super.onscrolled(recyclerview, dx, dy);         log.i("tag", "scroll " + dy);     } });  arraylist<string> list = new arraylist<>(); (int = 0; < 7; i++) {     list.add("" + i); } mrecyclerview.setadapter(new simplervadapter(list)); mlinearlayoutmanager.scrolltopositionwithoffset(2,0); 

however in case onscrolled don't call event recyclerview have scrolled (using scrolltopositionwithoffset).
know reason when use scrolltopositionwithoffset (or scrolltoposition) onscrolled call when firstvisibleitem , lastvisibleitem change. can see in demo (if firstvisibleitem=2 , lastvisibleitem=5 => onscrolled not called, firstvisibleitem=2 , lastvisibleitem=6 => onscrolled called)

is there trick or workaround way receive onscrolled when use scrolltoposition?

enter image description here

any or suggestion great appreciated.

i found in case recyclerview scrolled, firstvisibleitem , lastvisibleitem not change then recyclerview.onscrolllistener not called view.onlayoutchangelistener called

therefore, use both onscrolllistener , onlayoutchangelistener listen recyclerview scroll.

i'm still looking better solution


Comments

Popular posts from this blog

android - InAppBilling registering BroadcastReceiver in AndroidManifest -

python Tkinter Capturing keyboard events save as one single string -

sql server - Why does Linq-to-SQL add unnecessary COUNT()? -