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