ViewPager2 + TabLayout 联动

1,087 阅读1分钟

使用TabLayoutMediator 实现

    private void bindTabLayoutMonitor() {
        TabLayoutMediator mediator = new TabLayoutMediator(tabLayout, mViewPager, new TabLayoutMediator.TabConfigurationStrategy() {
            @Override
            public void onConfigureTab(@NonNull TabLayout.Tab tabCategory, int position) {
                LOG("onConfigureTab : " + position);
                View customView = tabCategory.getCustomView();
                if (customView == null) {
                    tabCategory.setCustomView(R.layout.layout_tab_text_air_quality);
                    customView = tabCategory.getCustomView();
                }
                TextView textView = customView.findViewById(R.id.tv_tab_air_quality);
//                if(position == 0){
//                    textView.setPadding(mLayoutUtil.getWidgetWidth(52), 0 ,0, 0);
//                }
                textView.setText(tabItemArr[position].getTabName());
                textView.setTextAppearance(getActivity(), R.style.TabLayoutTextUnSelected);
            }
        });
        //要执行这一句才是真正将两者绑定起来
        mediator.attach();
    }