`

仿今日头条tabhost指示器

阅读更多

 

      仿今日头条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下载地址:http://www.tp-shop.cn/article_id_1098.html

 

 

  • 大小: 216.5 KB
分享到:
评论

相关推荐

    仿新浪微博tabhost实现

    此外,还可以添加指示器动画、夜间模式切换等功能。 总结来说,仿新浪微博的TabHost实现涉及布局设计、TabHost初始化、自定义TabWidget样式以及处理每个标签页的逻辑。通过学习这个示例,开发者可以更好地掌握...

    仿新浪微博TabHost菜单

    TabHost是Android SDK提供的一种布局管理器,它允许开发者在一个Activity中创建多个Tab,每个Tab对应不同的内容区域。这个特效集锦系列旨在通过实例展示如何模仿新浪微博的Tab菜单效果,提升用户界面的交互性和美观...

    仿微信首页tabHost使用

    4. **样式和UI定制**: 要达到仿微信的效果,可能还需要调整`TabHost`和`TabWidget`的样式,比如字体、颜色、图标等。这通常通过设置自定义的主题或者直接修改XML布局文件来实现。 5. **数据加载和更新**: 在每个...

    ImageView 圆环旋转+仿微信底部TabHost+fragment

    TabLayout是Android Design Support Library的一部分,它提供了一个易于使用的接口来创建可定制的标签指示器。我们首先需要创建一个TabLayout实例,然后将其与ViewPager关联。ViewPager可以管理多个Fragment的滑动...

    使用TabHost仿微博客户端界面

    - 为了提供更丰富的用户体验,可以考虑使用自定义的Tab指示器,例如使用ImageView和TextView组合,或者自定义View来显示Tab的图标和文字。 在实际项目中,可能还需要处理一些额外的细节,比如Tab的点击动画、滑动...

    Android 嵌套TabHost示例

    `设置标签指示器,`tabSpec.setContent(intent);`设置点击标签时要启动的Intent。 5. 添加并显示标签:使用`tabHost.addTab(tabSpec);`将标签添加到TabHost,并显示出来。 对于嵌套的TabHost,即“两层TabHost”,...

    安卓 tabhost嵌套tabhost

    当我们提到“安卓 TabHost 嵌套 TabHost”,这意味着在一个TabHost内,我们还要再创建一个TabHost,形成一个多层选项卡的结构,以提供更复杂的导航体验。 首先,我们来理解基本的TabHost用法。TabHost通常由两部分...

    Tabhost仿QQ聊天新对话数字提示

    - `MyAndroidTest_36_MyTabHost_MsgNum` 这个文件名可能表示项目的主要测试类或包名,其中36可能是版本号或序列号,`MyTabHost_MsgNum` 指示这个项目的核心在于自定义的`TabHost`和消息计数功能。 6. **实现细节**...

    fragment仿微信tabhost

    在Android开发中,"fragment仿微信tabhost"是一个常见的需求,主要是为了实现类似微信应用的主界面布局。在Android 3.0及以上版本,Google引入了Fragment的概念,它允许开发者在单个活动中创建多个可交互的视图区域...

    仿新浪微博 的Tabhost

    在本示例中,"仿新浪微博的Tabhost"是为了实现一个与新浪微博类似的用户界面,其中包含多个功能模块,每个模块对应一个Tab。这个设计可以使用户在不同的功能之间轻松切换,提升用户体验。 Tabhost主要由两部分组成...

    仿新浪微博底部TabHost简单实现

    在Android应用开发中,TabHost是一个非常常见的组件,它用于创建多标签的界面,使得用户可以在不同的功能之间轻松切换。本教程将详细讲解如何使用TabHost来实现类似新浪微博底部导航栏的效果。 首先,我们需要理解...

    TabHost+ViewPager实现滑动tabhost

    4. 当Tab切换时,让ViewPager跟随切换:监听TabHost的选中事件,如`tabHost.setOnTabChangedListener()`,在监听器中调用ViewPager的`setCurrentItem()`方法。 **源码解析:** 在`ViewPaperTabhostTest`项目中,...

    TabHost两种实现方式

    在Android开发中,TabHost是一个重要的组件,用于创建带有可切换标签的用户界面。这篇博客“TabHost两种实现方式”探讨了如何在Android应用中使用TabHost来构建多标签视图。下面我们将深入讨论这两种实现方式及其...

    TabHost的各种实现方式

    在Android开发中,TabHost是一个重要的组件,它用于创建具有底部导航栏的应用界面,通常包含多个Tab,每个Tab对应一个不同的活动(Activity)或者视图(View)。本篇文章将深入探讨TabHost的各种实现方式,帮助...

    TabHost标签

    在Android开发中,`TabHost`是一个非常重要的组件,它用于创建具有标签栏的界面,让用户可以通过不同的标签在多个视图之间切换。`TabHost`是Android提供的一个容器,可以容纳多个`TabWidget`(标签)和一个`...

    仿微信主界面 Tabhost+Fragment

    很长一段时间没有上传资源了,最近觉得微信的主界面滑动很好用,研究了下,秉着开源...主要有 TabHost + Fragment 来实现。 当然,另一种实现方式是 ViewGroup + ViewPager,异曲同工,不过我这里没有采用这种方式。

    TabHost的使用方法

    在Android开发中,TabHost是一个非常重要的组件,用于创建具有多个Tab标签的界面,每个标签可以展示不同的内容或活动(Activity)。本教程将详细介绍如何使用TabHost,特别适合初学者和教学场景,例如构建一个模拟...

    tabhost activity slidingMenu仿新浪微博布局.zip

    在Android开发中,"tabhost activity slidingMenu仿新浪微博布局.zip"是一个典型的移动应用界面设计案例,它结合了TabHost和SlidingMenu组件来模仿新浪微博的用户界面。这个小框架展示了如何构建一个具有底部标签...

    viewpager 指示器控件

    3. 自定义指示器:除了使用已有的指示器库,开发者也可以根据需求自定义指示器。这可以通过继承ViewGroup,然后重写onDraw()方法来绘制所需的指示器样式。自定义指示器可以更好地适应项目的视觉风格,但需要更多代码...

    android tabhost用法 源码

    在Android开发中,TabHost是实现标签栏切换界面的一个重要组件。TabHost允许开发者创建一个包含多个Tab的界面,每个Tab都可以关联到不同的活动(Activity)或者帧布局(FrameLayout)。下面将详细介绍TabHost的使用...

Global site tag (gtag.js) - Google Analytics