In my app, I've several fragments inside a ViewPager + TabLayout. I don't understand how you can basically filter the RecyclerView realtime. To me it seems that your concept is just filtering once, i.e. as long as you don't call the method again, the list will not be filtered. Do you have some further insights?