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