Android CV系列 > coordinatortablayout 一个花式导航栏 能下能上那种

maven { url "https://jitpack.io" }
//noinspection GradleCompatible
    implementation 'com.android.support:design:26.1.0'
    compile 'cn.hugeterry.coordinatortablayout:coordinatortablayout:1.2.2'
    //RecyclerView 快速适配器
    compile 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.30'

 

 这几张图其实是不一样的

1.MainAc

public class MainActivity extends AppCompatActivity {
    private String[] titles = {"第一个", "第二个", "第三个", "第四个"};
    private ArrayList<Fragment> fragmentList;
    private int[] mImageArray, mColorArray;
    private ViewPager mViewPager;
    private CoordinatorTabLayout coordinatorTabLayout;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initFragments();
        initViewPager();
        mImageArray = new int[]{R.drawable.index1, R.drawable.index2, R.drawable.index3, R.drawable.index4};
        mColorArray = new int[]{R.color.colorRed, R.color.colorOrange, R.color.colorGreen, R.color.colorBlue};

        coordinatorTabLayout = findViewById(R.id.coordinatortablayout);
        coordinatorTabLayout.setTranslucentStatusBar(this)
                .setTitle("HiAHiA")
                .setBackEnable(false)
                .setImageArray(mImageArray,mColorArray)
                .setupWithViewPager(mViewPager);
        TabLayout tabLayout = coordinatorTabLayout.getTabLayout();
        for (int i = 0; i < titles.length; i++) {
            TabLayout.Tab tab = tabLayout.getTabAt(i);
            if (tab != null) {
                tab.setCustomView(getTabView(i));
            }
        }


        coordinatorTabLayout.addOnTabSelectedListener(new OnTabSelectedListener() {
            @Override
            public void onTabSelected(TabLayout.Tab tab) {
                TextView customView = (TextView) tab.getCustomView();
                customView.setTextColor(Color.BLACK);
            }

            @Override
            public void onTabUnselected(TabLayout.Tab tab) {
                TextView customView = (TextView) tab.getCustomView();
                customView.setTextColor(Color.WHITE);
            }

            @Override
            public void onTabReselected(TabLayout.Tab tab) {

            }
        });
        coordinatorTabLayout.getTabLayout().getTabAt(2).select();
    }

    private void initViewPager() {
        mViewPager = findViewById(R.id.vp);
        mViewPager.setOffscreenPageLimit(titles.length);
        mViewPager.setAdapter(new MyPagerAdapter(getSupportFragmentManager(), fragmentList, titles));
    }

    private void initFragments() {
        fragmentList = new ArrayList<>();
        for (int i = 0; i < titles.length; i++) {
            fragmentList.add(new BlankFragment());
        }
    }


    private View getTabView(int currentPosition) {
        TextView textView = new TextView(this);
        textView.setText(titles[currentPosition]);
        textView.setTextColor(Color.WHITE);
        return textView;
    }
}

2.MainXml

<?xml version="1.0" encoding="utf-8"?>
<cn.hugeterry.coordinatortablayout.CoordinatorTabLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/coordinatortablayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.v4.view.ViewPager
        android:id="@+id/vp"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</cn.hugeterry.coordinatortablayout.CoordinatorTabLayout>

3.PagerAdapter

public class MyPagerAdapter extends FragmentPagerAdapter {
    private ArrayList<Fragment> mFragments ;
    private final String[] mTitles;

    public MyPagerAdapter(FragmentManager fm, ArrayList<Fragment> mFragments, String[] mTitles) {
        super(fm);
        this.mFragments = mFragments;
        this.mTitles = mTitles;
    }

    @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);
    }
}

4.MyAdapter

public class MyAdapter extends BaseQuickAdapter<String, BaseViewHolder> {
    public MyAdapter(int layoutResId, @Nullable List<String> data) {
        super(layoutResId, data);
    }

    @Override
    protected void convert(BaseViewHolder helper, String item) {
        helper.setText(R.id.tvItem, item);
    }
}

5.Fragment

public class BlankFragment extends Fragment {


    public BlankFragment() {
        // Required empty public constructor
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View inflate = inflater.inflate(R.layout.fragment_blank, container, false);
        RecyclerView recyclerview = inflate.findViewById(R.id.recyclerview);
        List<String> list=new ArrayList<>();
        for (int i = 0; i < 30; i++) {
            list.add(""+i);
        }
        recyclerview.setLayoutManager(new LinearLayoutManager(getActivity()));
        MyAdapter myAdapter = new MyAdapter(R.layout.item, list);
        recyclerview.setAdapter(myAdapter);
        return inflate;
    }

}

6.FragmentXML

<android.support.v7.widget.RecyclerView
       android:id="@+id/recyclerview"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"/>

7.NoActionBar

猜你喜欢

转载自blog.csdn.net/FlyPig_Vip/article/details/81943943