android中MagicIndicator的基本用法

作者: 雨田Android开发 | 来源:发表于2018-07-30 10:27 被阅读660次

    在项目和产品的开发过程中难免会遇到使用viewpager+指示器的UI实现,之前都是自己写来实现,麻烦不说代码量也比较多,之前也想过自己抽出来封装一个框架来处理,但是在后来发现MagicIndicator这个框架挺好用的,方法简单效果比较全面,然后就用了这个,下面大概介绍一下MagicIndicator的基本用法
    第一步首先就是引用这个框架,在build.gradle中添加引用
    compile'com.github.hackware1993:MagicIndicator:1.5.0'
    第二步在使用的页面布局文件中添加代码

    <net.lucode.hackware.magicindicator.MagicIndicator
        android:id="@+id/magic_indicator"
        android:layout_width="match_parent"
        android:layout_height="45dp" />
    <android.support.v4.view.ViewPager
        android:id="@+id/viewpager"
        android:layout_weight="1"
        android:layout_width="match_parent"
        android:layout_height="0dp">
    </android.support.v4.view.ViewPager>
    

    在通过在view页面初始化控件并设置控件属性

    @BindView(R.id.magic_indicator)
    MagicIndicator magicIndicator;
    @BindView(R.id.viewpager)
    ViewPager viewPager;
    

    设置标题的指示器样式

    CommonNavigator commonNavigator = new CommonNavigator(getActivity());
     commonNavigator.setAdapter(new CommonNavigatorAdapter() {
            @Override
            public int getCount() {
                return titles.length;
            }
            @Override
            public IPagerTitleView getTitleView(Context context, final int index) {
                SimplePagerTitleView simplePagerTitleView = new ScaleTransitionPagerTitleView(context);
                simplePagerTitleView.setText(titles[index]);
                simplePagerTitleView.setTextSize(20);//设置导航的文字大小
                simplePagerTitleView.setNormalColor(Color.GRAY);//正常状态下的标题颜色
                simplePagerTitleView.setSelectedColor(getResources().getColor(R.color.title_bar_bg));//选中的标题字体颜色
                simplePagerTitleView.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        viewPager.setCurrentItem(index);
                    }
                });
                return simplePagerTitleView;
            }
            @Override
            public IPagerIndicator getIndicator(Context context) {
                return null;
            }
        });
        magicIndicator.setNavigator(commonNavigator);
    

    最后需要将viewpager与MagicIndicator 绑定到一起
    ViewPagerHelper.bind(magicIndicator, viewPager);
    这样基础的用法就搞定了效果如下图


    Screenshot_20180427-150202.jpg

    相关文章

      网友评论

        本文标题:android中MagicIndicator的基本用法

        本文链接:https://www.haomeiwen.com/subject/qqmxvftx.html