`
苗振忠
  • 浏览: 56639 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论
阅读更多

TabLayout替换ViewPagerIndicator

参照文章: http://chenfuduo.me/2015/07/30/TabLayout-of-design-support-library/

1.build.gradle关联库,需要在联网的情况下做

compile 'com.android.support:design:22.2.1'

2.在布局文件中使用TabLayout,即把TabPagerIndicator替换成TabLayout

    <android.support.design.widget.TabLayout
        android:id="@+id/tabpage_indicator"
        android:layout_width="wrap_content"
        style="@style/MyCustomTabLayout"
        android:layout_height="wrap_content"
        android:layout_weight="1" />

3.设置样式(不能没有样式)

style="@style/MyCustomTabLayout"

    <style name="MyCustomTabLayout" parent="Widget.Design.TabLayout">

        <item name="tabMaxWidth">@dimen/tab_max_width</item>
        <item name="tabMinWidth">72dp</item>
        <item name="tabIndicatorColor">#0000FF</item>
        <item name="tabIndicatorHeight">3dp</item>


        <item name="tabPaddingStart">8dp</item>
        <item name="tabPaddingEnd">8dp</item>
        <item name="tabBackground">@android:color/white</item>
        <item name="tabTextAppearance">@style/MyCustomTabTextAppearance</item>
        <item name="tabSelectedTextColor">@android:color/holo_red_light</item>
    </style>


    <style name="MyCustomTabTextAppearance" parent="TextAppearance.Design.Tab">
        <item name="android:textSize">14sp</item>
        <item name="android:textColor">@android:color/black</item>
        <item name="textAllCaps">false</item>
    </style>

4.关联ViewPager

  //TabLayout关联ViewPager
    tabLayout.setupWithViewPager(vp_news_menu_detail);
    //一定要设置设置滚动模式
    tabLayout.setTabMode(TabLayout.MODE_SCROLLABLE);

5.在适配器中重写getPageTitle方法

 @Override
    public CharSequence getPageTitle(int position) {
        return  children.get(position).getTitle();
  }

6.自定义Tab的效果

6.1 设置Tab的效果步骤一,在适配器中重写getTabView()方法

 public View getTabView(int position){
        View view = LayoutInflater.from(mActivity).inflate(R.layout.tab_item, null);
        TextView tv= (TextView) view.findViewById(R.id.textView);
        tv.setText(children.get(position).getTitle());
        ImageView img = (ImageView) view.findViewById(R.id.imageView);
        img.setImageResource(R.drawable.dot_focus);
        return view;
    }

要写布局如下:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:orientation="vertical">


        <TextView
            android:id="@+id/textView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="3dp" />

        <ImageView
            android:id="@+id/imageView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true" />

    </LinearLayout>

6.2调用 getTabView 方法

//自定义Table布局要结合适配器中的getTabView方法

    for (int i = 0; i < tabLayout.getTabCount(); i++) {
        TabLayout.Tab tab = tabLayout.getTabAt(i);
        tab.setCustomView(mAdapter.getTabView(i));
    }

如果不调用就没有效果

分享到:
评论

相关推荐

    tablayout的自定义tab和自定义指示器

    首先,创建一个继承`TabLayout.ViewPagerIndicator`的类,重写其中的方法来绘制指示器。然后,通过`tabLayout.setTabIndicatorFactory()`设置自定义的指示器工厂。 ```java tabLayout.setTabIndicatorFactory(new ...

    TabLayout修改下划线

    在Android开发中,`TabLayout`是谷歌提供的一个用于实现底部标签导航的组件,常见于应用的多个页面切换。在很多设计中,`TabLayout`的下划线样式需要根据需求进行定制,以达到与整体界面风格一致的效果。本篇文章将...

    可自定义下划线的TabLayout

    在XML布局文件中,使用`&lt;com.yourpackage.ModifyTabLayout&gt;`替换`&lt;androidx.appcompat.widget.TabLayout&gt;`,然后设置自定义的属性。在代码中,可以像常规TabLayout一样使用,只需记得调用`setupWithViewPager()`...

    TabLayout设置下划线长度

    2. **覆盖`TabLayout`的默认样式**: 在自定义的`TabLayout`中,通过`setCustomTabView()`方法,我们可以替换默认的`TabView`,从而控制下划线的显示。在这个`TabView`中,我们可以将自定义的指示器设置为`Tab`的背景...

    TabLayout标题右上角加数字标记

    在Android开发中,`TabLayout`是谷歌支持库提供的一种组件,用于展示多个标签页,通常与`ViewPager`配合使用,实现滑动切换不同页面的效果。`TabLayout`的标题右上角添加数字标记是一种常见的需求,这可以用来指示...

    ViewPagerIndicator的简单使用

    在不导入特定Library的情况下实现`ViewPagerIndicator`,我们可以利用Android自带的`TabLayout`,它是`Design Support Library`的一部分。`TabLayout`提供了多种风格的Tab指示器,能够很好地与`ViewPager`配合使用。...

    Android Tablayout 自定义Tab布局的使用案例

    Android Tablayout 自定义Tab布局的使用案例 Android Tablayout 是 Android 设计库中的一部分,主要用于实现标签页功能。Tablayout 中的 Tab 可以自定义布局,以满足不同的需求。本文将 introduction 了 Android ...

    TabLayout的多重用法

    TabLayout是Android开发中常用的组件,它主要用于在应用中创建标签式导航,让用户可以方便地在不同的页面或视图之间切换。本篇文章将深入探讨TabLayout的多种使用方法,帮助开发者充分利用这一强大的工具来提升用户...

    Tablayout + ViewPage 完整案例

    在Android开发中,`TabLayout`和`ViewPager`是两个常用的组件,它们通常结合使用来实现页面间的切换和标签导航。本案例提供了`TabLayout`与`ViewPager`完整集成的实例,开发者可以直接运行源码进行学习和应用。下面...

    安卓好看的tablayout动画(国外的)

    在安卓应用开发中,TabLayout 是一个非常常用的组件,它用于在顶部展示多个标签页,让用户可以方便地在不同页面间切换。这个“安卓好看的tablayout动画(国外的)”资源,显然提供了一种独特且设计精良的TabLayout...

    Android顶部导航之TabLayout和ViewPager的组合

    在`TabLayout`中添加自定义标签,你可以使用`TabLayout.addTab(TabLayout.Tab tab)`方法,并通过`TabLayout.Tab.setText(String text)`和`TabLayout.Tab.setIcon(Drawable icon)`方法来设置标签的文字和图标。...

    Android TabLayout+fragment(左右切换文字颜色渐变)

    在Android开发中,`TabLayout`是一个非常常用的组件,它用于创建顶部标签栏,可以方便地与`ViewPager`配合实现页面间的切换。本教程将详细讲解如何使用`TabLayout`结合`Fragment`来构建一个左右切换时文字颜色渐变的...

    tablayout实现fregment侧滑

    在Android开发中,TabLayout是谷歌提供的一个用于创建标签页的UI组件,它与ViewPager结合使用,能够方便地实现页面间的切换。而“tablayout实现fragment侧滑”是指利用TabLayout和Fragment配合,使得用户可以通过在...

    Android Studio —— TabLayout

    **Android Studio 中的 TabLayout 知识点详解** 在 Android 应用开发中,TabLayout 是一个非常常用的设计元素,它允许用户通过标签页来切换不同的视图或内容区域。通常,TabLayout 与 ViewPager 结合使用,为用户...

    TabLayout+Fragment 使用示例

    在Android开发中,`TabLayout`和`Fragment`是构建多标签、动态切换内容界面的常见组件。`TabLayout`是Google Material Design设计规范的一部分,它提供了美观且易于使用的标签栏,而`Fragment`则用于在Activity中...

    TabLayout 方便快捷实现选项卡功能

    implementation 'com.google.android.material:material:版本号' // 替换为最新版本 ``` 最新版本可以在Google的Maven仓库中找到。 2. **基本使用** 创建一个TabLayout实例,通常是在XML布局文件中: ```xml ...

    TabLayout布局

    在Android开发中,`TabLayout`是一个非常常用的组件,它被设计用来展示多个Tab标签,通常与`ViewPager`配合使用,以实现滑动切换不同页面的效果。本项目以`TabLayout`为主题,通过`TabLayout+ViewPager`的组合,帮助...

    Android Material Design之TabLayout + NavigationView联合使用

    TabLayout和NavigationView是Material Design组件库中的两个重要元素,它们分别用于实现底部标签导航和侧滑菜单。本文将深入探讨如何在Android应用中有效地联合使用这两个组件。 TabLayout是Android支持库中的一个...

    TabLayout控件使用

    确保替换“版本号”为当前最新的稳定版本。 `TabLayout`的基本使用步骤如下: 1. 在布局文件中添加`TabLayout`: ```xml &lt;android.support.design.widget.TabLayout android:id="@+id/tab_layout" android:...

    Android ToolBar、TabLayout加角标显示未读消息

    在Android应用开发中,`ToolBar`和`TabLayout`是两个非常重要的组件,它们用于构建用户界面中的导航和页面切换。`ToolBar`通常作为应用程序的顶部栏,展示应用的标题和一些操作按钮;而`TabLayout`则常用于实现底部...

Global site tag (gtag.js) - Google Analytics