TabLayout实现自定义标题栏目功能

TabLayout实现自定义标题栏目功能

1、前提

在平时的工作中,大家都会使用到TabLayout,默认情况下TabLayout支持文字的,需要支持图文或者自定义就需要自己来写了。
先上一张图:
TabLayout实现自定义标题栏目功能_第1张图片

2、直接上代码

布局文件



    

你自定义的布局文件




    

    


java代码

@Override
    protected void initData() {
        // data
        List titleList = new ArrayList<>();
        titleList.add("全部");
        titleList.add("结算收入");
        titleList.add("提现支出");
        titleList.add("退款支出");
        List fragmentList = new ArrayList<>();
        fragmentList.add(FinanceBottomFragment.getInstance(Const.FinanceClass.FinanceClass_0));
        fragmentList.add(FinanceBottomFragment.getInstance(Const.FinanceClass.FinanceClass_1));
        fragmentList.add(FinanceBottomFragment.getInstance(Const.FinanceClass.FinanceClass_2));
        fragmentList.add(FinanceBottomFragment.getInstance(Const.FinanceClass.FinanceClass_3));
        MyFragmentPagerAdapter myFragmentPagerAdapter = new MyFragmentPagerAdapter(getSupportFragmentManager(), fragmentList);
        viewPager.setAdapter(myFragmentPagerAdapter);
        viewPager.setOffscreenPageLimit(3);
        tabLayout.setupWithViewPager(viewPager);
        for (int i = 0; i < titleList.size(); i++) {
            tabLayout.getTabAt(i).setCustomView(getTabView(i, titleList.get(i)));
        }
    }

    /**
     * 自定义的TabLayout
     *
     * @param position
     * @param value
     * @return
     */
    public View getTabView(int position, String value) {
        View view = LayoutInflater.from(this).inflate(R.layout.view_tablayout_num, null);
        TextView tv = view.findViewById(R.id.tv_title);
        RTextView num = view.findViewById(R.id.tv_num);
        tv.setText(value);
        num.setText("20");
        num.setVisibility(View.VISIBLE);
        return view;
    }

你可能感兴趣的:(Android-项目常用)