本文主要是介绍关于使用tabLayout.addOnTabSelectedListener执行多次的问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
问题再现
最近实现一个需求,就是Tablayout+Recyclerview实现联动效果,于是
tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {@Overridepublic void onTabSelected(TabLayout.Tab tab) {Log.e("sujd=======1",tab.getPosition()+"");}@Overridepublic void onTabUnselected(TabLayout.Tab tab) {Log.e("sujd=======3",tab.getPosition()+"");}@Overridepublic void onTabReselected(TabLayout.Tab tab) {Log.e("sujd=======2",tab.getPosition()+"");} });
原因分析
查看源码,是我在联动的时候,add了多次,导致滑动冲突
解决方案
private void initListener(){tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {@Overridepublic void onTabSelected(TabLayout.Tab tab) {manager.scrollToPositionWithOffset(tab.getPosition(),0);}@Overridepublic void onTabUnselected(TabLayout.Tab tab) {}@Overridepublic void onTabReselected(TabLayout.Tab tab) {}});rv_date.addOnScrollListener(new RecyclerView.OnScrollListener() {@Overridepublic void onScrollStateChanged(RecyclerView recyclerView, int newState) {super.onScrollStateChanged(recyclerView, newState);tabLayout.setScrollPosition(manager.findFirstVisibleItemPosition(),0,true);}}); }
这篇关于关于使用tabLayout.addOnTabSelectedListener执行多次的问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!