CommonTabLayout

上面ViewPager+下面的tab

xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tl="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <androidx.viewpager.widget.ViewPager
        android:id="@+id/home_viewpager"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"/>

    <com.flyco.tablayout.CommonTabLayout
        android:id="@+id/home_tablayout"
        android:layout_width="match_parent"
        android:layout_height="66dp"
        android:background="#ffffff"
        tl:tl_iconGravity="TOP"
        tl:tl_iconHeight="30dp"
        tl:tl_iconMargin="5dp"
        tl:tl_iconWidth="30dp"
        tl:tl_indicator_bounce_enable="false"
        tl:tl_indicator_color="#0025ff"
        tl:tl_indicator_gravity="TOP"
        tl:tl_textSelectColor="#0025ff"
        tl:tl_textUnselectColor="#454544"
        tl:tl_textsize="14sp"
        tl:tl_underline_color="#DDDDDD"
        tl:tl_underline_gravity="TOP"
        tl:tl_underline_height="1dp"/>


</LinearLayout>

 activity:

private ArrayList<Fragment> mFragments = new ArrayList<>();
    private String[] mTitles = {"首页", "资讯", "我的"};
    private int[] mIconUnselectIds = {
            R.mipmap.home_unselect, R.mipmap.collect_unselect,
            R.mipmap.my_unselect};
    private int[] mIconSelectIds = {
            R.mipmap.home_selected, R.mipmap.collect_selected,
            R.mipmap.my_selected};
    private ArrayList<CustomTabEntity> mTabEntities = new ArrayList<>();

 tab,viewPager设置监听:

 binding.homeTablayout.setOnTabSelectListener(new OnTabSelectListener() {
            @Override
            public void onTabSelect(int position) {
//                binding.homeTablayout.setCurrentTab(position);
                binding.homeViewpager.setCurrentItem(position);
            }

            @Override
            public void onTabReselect(int position) {

            }
        });

        binding.homeViewpager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

            }

            @Override
            public void onPageSelected(int position) {
                binding.homeTablayout.setCurrentTab(position);
            }

            @Override
            public void onPageScrollStateChanged(int state) {

            }
        });

viewpager设置适配器 

//viewpager设置适配器
        MyPagerAdapter adapter = new MyPagerAdapter(getSupportFragmentManager());
        binding.homeViewpager.setAdapter(adapter);

添加下面的tab

//添加下面的tab
        for (int i = 0; i < mTitles.length; i++) {
            mTabEntities.add(new TabEntity(mTitles[i], mIconSelectIds[i], mIconUnselectIds[i]));
        }
        binding.homeTablayout.setTabData(mTabEntities);

viewPager的适配器 

package com.example.app2.adapter;

import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;

import com.example.app2.R;
import com.example.app2.fragment.HomeFragment;
import com.example.app2.fragment.MyFragment;
import com.example.app2.fragment.NewsFragment;

import java.util.ArrayList;

public class MyPagerAdapter extends FragmentPagerAdapter {
    private ArrayList<Fragment> mFragments = new ArrayList<>();
    private String[] mTitles = {"首页", "资讯", "我的"};
    private int[] mIconUnselectIds = {
            R.mipmap.home_unselect, R.mipmap.collect_unselect,
            R.mipmap.my_unselect};
    private int[] mIconSelectIds = {
            R.mipmap.home_selected, R.mipmap.collect_selected,
            R.mipmap.my_selected};

    public MyPagerAdapter(FragmentManager fm) {
        super(fm);
        //添加fragment
        mFragments.add(new HomeFragment());
        mFragments.add(new NewsFragment());
        mFragments.add(new MyFragment());

    }

    @Override
    public int getCount() {
        return mFragments.size();
    }

    @Override
    public CharSequence getPageTitle(int position) {
        return mTitles[position];
    }

    @Override
    public Fragment getItem(int position) {
        return mFragments.get(position);
    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值