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