Android MagicIndicator指示器+ViewPager

MagicIndicator指示器 是新版studio中的控件,替代原来的Tablayout,功能是一样的。

使用方法:

1、导依赖 在APP gradle中添加 

//指示器
implementation 'com.github.hackware1993:MagicIndicator:1.5.0'

在项目中添加如图指示器依赖

添加完同步一下。

2、在xml中添加控件

<net.lucode.hackware.magicindicator.MagicIndicator
    android:id="@+id/mid"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:background="#d43d3d" />
<androidx.viewpager.widget.ViewPager
    android:id="@+id/vp_chengdan"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

3、在java代码中操作

在onCreate()方法中初始化这3个方法

private void initView() {
    mMagicIndicator = (MagicIndicator) findViewById(R.id.mid);
    vp_chengdan = (ViewPager) findViewById(R.id.vp_chengdan);
}
private void initData() {
    listTitle = new ArrayList<String>();
    listTitle.add("当前成单");
    listTitle.add("历史成单");

    list = new ArrayList<Fragment>();
    list.add(new CurrentOrderFragment());
    list.add(new CurrentOrderFragment());
}
 private void initAdapter() {

        //通用导航器
        CommonNavigator commonNavigator = new CommonNavigator(this);
        commonNavigator.setAdapter(new CommonNavigatorAdapter() {
            @Override
            public int getCount() {
                return listTitle == null ? 0 : listTitle.size();
            }

            @Override
            public IPagerTitleView getTitleView(Context context, int index) {
//                ClipPagerTitleView clipPagerTitleView = new ClipPagerTitleView(context);
//                clipPagerTitleView.setText(listTitle.get(index));
//                clipPagerTitleView.setTextColor(Color.GRAY);
//                clipPagerTitleView.setClipColor(Color.WHITE);
//                clipPagerTitleView.setOnClickListener(new View.OnClickListener() {
//                    @Override
//                    public void onClick(View view) {
//                        vp_chengdan.setCurrentItem(index);//设置ViewPager
//
//                    }
//                });

//                颜色过滤寻呼机
                ColorTransitionPagerTitleView colorTransitionPagerTitleView = new ColorTransitionPagerTitleView(context);
                colorTransitionPagerTitleView.setNormalColor(Color.GRAY);//标题默认颜色
                colorTransitionPagerTitleView.setSelectedColor(Color.RED);//选中的颜色
                colorTransitionPagerTitleView.setText(listTitle.get(index));//设置标题
//               设置监听
                colorTransitionPagerTitleView.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        vp_chengdan.setCurrentItem(index);//设置ViewPager
                    }
                });
                return colorTransitionPagerTitleView;
            }

            @Override
            public IPagerIndicator getIndicator(Context context) {
                LinePagerIndicator indicator = new LinePagerIndicator(context);
                indicator.setMode(LinePagerIndicator.MODE_WRAP_CONTENT);
                return indicator;
            }
        });

        MyOrderAdapter adapter = new MyOrderAdapter(getSupportFragmentManager(), listTitle, list);


        //设置导航器
        mMagicIndicator.setNavigator(commonNavigator);
        vp_chengdan.setAdapter(adapter);
        ViewPagerHelper.bind(mMagicIndicator, vp_chengdan);
    }

参考链接:https://github.com/hackware1993/MagicIndicator

发布了154 篇原创文章 · 获赞 36 · 访问量 22万+

猜你喜欢

转载自blog.csdn.net/yijiaodingqiankun/article/details/103240681