仿今日头条/商城商品详情指示器

来源:互联网 发布:学cnc编程 编辑:程序博客网 时间:2024/05/11 17:12

仿今日头条viewpager切换指示器, 商品详情指示器,以及各种很灵活的定制自己需要的样式:
该控件的实现, 引用的是MagicIndicator. 效果图如下:
这里写图片描述

具体代码效果如下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"      xmlns:tools="http://schemas.android.com/tools"      android:layout_width="match_parent"      android:layout_height="match_parent"      android:orientation="vertical">      <net.lucode.hackware.magicindicator.MagicIndicator          android:id="@+id/magic_indicator"          android:layout_width="match_parent"          android:layout_height="@dimen/dp_40"          android:background="@color/bg_view"/>      <View style="@style/separator_line" />      <android.support.v4.view.ViewPager          android:id="@+id/view_pager"          android:layout_width="match_parent"          android:layout_height="match_parent"/>  </LinearLayout>  

MagicIndicator的使用:

mMagicIndicator = (MagicIndicator)findViewById(R.id.magic_indicator);        mViewPager = (ViewPager)findViewById(R.id.view_pager);        this.goodsId = getIntent().getStringExtra("goodsId");        this.contents  = getIntent().getStringExtra("content");        this.position = getIntent().getIntExtra("position" ,0);        fragPagerAdapter = new SPProductDetailInnerTabAdapter(getSupportFragmentManager() , goodsId ,contents);        mViewPager.setAdapter(fragPagerAdapter);        // 当前页不定位到中间        final CommonNavigator commonNavigator = new CommonNavigator(this);        commonNavigator.setAdjustMode(true);        commonNavigator.setScrollPivotX(0.15f);        commonNavigator.setAdapter(new CommonNavigatorAdapter() {            @Override            public int getCount() {                return mDataList == null ? 0 : mDataList.size();            }            @Override            public IPagerTitleView getTitleView(Context context, final int index) {                SimplePagerTitleView simplePagerTitleView = new SimplePagerTitleView(context);                simplePagerTitleView.setText(mDataList.get(index));                simplePagerTitleView.setNormalColor(getResources().getColor(R.color.sub_title));                simplePagerTitleView.setSelectedColor(getResources().getColor(R.color.light_red));                simplePagerTitleView.setTextSize(12);                simplePagerTitleView.setOnClickListener(new View.OnClickListener() {                    @Override                    public void onClick(View v) {                        mViewPager.setCurrentItem(index);                    }                });                return simplePagerTitleView;            }            @Override            public IPagerIndicator getIndicator(Context context) {                LinePagerIndicator indicator = new LinePagerIndicator(context);                indicator.setMode(LinePagerIndicator.MODE_WRAP_CONTENT);                indicator.setYOffset(UIUtil.dip2px(context, 3));                indicator.setColors(getResources().getColor(R.color.light_red));                return indicator;            }        });        mMagicIndicator.setNavigator(commonNavigator);        mMagicIndicator.setDelegate(new SimpleViewPagerDelegate(mViewPager));

这样就可以快速实现一个tab选项卡式效果, 可以很随意自定义自己的样式.

完整Demo下载地址:Demo下载地址

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 手砸伤了肿了怎么办 手被机器压伤了怎么办 上眼皮眼睛肿了怎么办 上眼皮内有淤血怎么办 种睫毛眼睛红痛怎么办 一只眼睛变红了怎么办 黑眼球缺了一角怎么办 眼镜度数配高了怎么办 孩子近视800度可怎么办 儿童眼睛近视怎么办才能恢复正常 小孩眼睛近视怎么办才能恢复正常 3岁宝宝近视怎么办啊 6个月婴儿近视怎么办 近视眼的人老了怎么办 一千多度的近视怎么办 近视镜片磨花了怎么办 眼镜镜片磨花了怎么办 戴眼镜鼻梁有印怎么办 狗狗发烧怎么办最有效 狗狗感冒怎么办最有效 狗狗发烧去医院怎么办 眼睛里长了虫子怎么办 吃了没熟的猪肉怎么办 没熟的鸡肉吃了怎么办 狗狗大便有绦虫怎么办 吃了有虫的猪肉怎么办 米猪肉吃了会怎么办 吃了鱼的寄生虫怎么办 鱼身体里有线虫怎么办 幼猫半夜一直叫怎么办 猫半夜4点叫不停怎么办 眼睛里长了黄斑怎么办 眼睛周围长小疙瘩怎么办 眼睛被手机砸了怎么办 眼睛被东西砸了怎么办 眼睛被打了一下怎么办 眼睛被树枝伤了怎么办 眼球被打了一下怎么办 眼睛黄有血丝是怎么办 上眼皮有异物感怎么办 20岁眼周围皱纹怎么办