`

使用TabLayout实现底部Tab布局

阅读更多

Android design支持库中的TabLayout一般都用来实现头部Tab的效果,
比如:
TabLayout

但是像微信这种底部Tab布局在我们实际项目中还是非常常见的设计,
现在我们也可以用TabLayout非常方便的实现。
底部Tab

 

布局

下面我们开始实现底部Tab,layout布局比较简单,我们只用把TabLayout放置在底部即可

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@+id/appbar"
        android:orientation="vertical">


        <android.support.v4.view.ViewPager
            android:id="@+id/viewPager"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1.0"
            android:scrollbars="none" />

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

</LinearLayout>

 

我定义了一个自定义的style,把tabIndicatorHeight设为0dp

<style name="MyCustomTabLayout" parent="Widget.Design.TabLayout">
        <item name="tabMaxWidth">@dimen/tab_max_width</item>
        <item name="tabIndicatorColor">?attr/colorAccent</item>
        <item name="tabIndicatorHeight">0dp</item>
        <item name="tabPaddingStart">12dp</item>
        <item name="tabPaddingEnd">12dp</item>
        <item name="tabBackground">@color/tab_bgcolor</item>
        <item name="tabSelectedTextColor">?android:textColorPrimary</item>
</style>

代码实现

我们首先设置好ViewPager,然后设置TabLayout与ViewPager的对应关系,
最后最关键的是使用TabLayout的setCustomView设置自定义的TAB View。

viewPager = (ViewPager)findViewById(R.id.viewPager);
tabLayout = (TabLayout) findViewById(R.id.tabLayout);

SampleFragmentPagerAdapter pagerAdapter =
        new SampleFragmentPagerAdapter(getSupportFragmentManager(), this);
viewPager.setAdapter(pagerAdapter);

tabLayout.setupWithViewPager(viewPager);

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

viewPager.setCurrentItem(1);
public View getTabView(int position) {
            View v = LayoutInflater.from(context).inflate(R.layout.custom_tab, null);
            TextView tv = (TextView) v.findViewById(R.id.textView);
            tv.setText(tabTitles[position]);
            ImageView img = (ImageView) v.findViewById(R.id.imageView);
            //img.setImageResource(imageResId[position]);
            return v;
        }

代码例子:BottomTabActivity.java

分享到:
评论

相关推荐

    Android 基于TabLayout实现的TAB页效果 仿今日头条.rar

    Android 基于TabLayout实现的TAB页导航切换效果 仿今日头条底部的TAB选项卡效果,TabLayout与ViewPager结合使用可以达到点击tab更新ViewPager、滑动ViewPager更新Tab的效果。这种效果现在在PC端、移动设备端已经很...

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

    在Android开发中,`TabLayout`是Google提供的一个用于创建底部导航栏或者顶部标签页的组件,常与`ViewPager`配合使用,实现页面间的切换。本文将深入探讨如何自定义`TabLayout`的tab和指示器,以实现更加个性化的...

    用 TabLayout 实现底部、顶部导航栏

    下面,我们将深入探讨如何使用TabLayout实现底部和顶部导航栏,并介绍相关的重要知识点。 1. **TabLayout的引入** 在项目中使用TabLayout之前,首先需要在build.gradle模块文件中添加对Design库的依赖: ```...

    使用Tablayout和RadioGroup实现底部导航

    虽然`TabLayout`更常用于底部导航,但如果你想要实现一种不依赖`ViewPager`的简单底部导航,可以考虑使用`RadioGroup`配合`RadioButton`。每个`RadioButton`代表一个页面,当用户点击某个按钮时,相应的内容区域会被...

    Android TabLayout 实现底部Tab的示例代码

    本文将深入讲解如何使用TabLayout实现Android应用底部Tab的示例代码。 首先,TabLayout是Android支持库中的一个组件,它是Material Design组件库的一部分,用于在顶部或底部创建标签式导航。在底部Tab导航中,...

    Android中TabLayout+ViewPager 简单实现app底部Tab导航栏

    `TabLayout`是Android Design Support Library中的一个重要组件,它提供了美观且易于使用的标签页功能,可以与`ViewPager`结合使用,实现底部Tab栏的交互效果。本文将详细介绍如何使用`TabLayout`和`ViewPager`在...

    仿微信 TabLayout、ViewPager实现顶部和底部Tab导航

    要实现"底部tab和顶部tab"的效果,我们需要两层TabLayout:一层作为底部导航,另一层作为顶部导航。底部TabLayout通常包含固定的几个选项,如“首页”、“发现”、“我”等,而顶部TabLayout则可以在用户选择某个...

    ViewPager+TabLayout快速集成底部Tab栏+Fragment

    在Android应用开发中,创建一个具有底部Tab栏的界面是常见的需求,这通常涉及到`ViewPager`、`TabLayout`和`Fragment`的结合使用。`ViewPager`用于展示多个页面,`TabLayout`作为标签页来切换`ViewPager`中的页面,...

    底部与顶部Tab布局

    首先,底部Tab布局通常由Android的`BottomNavigationView`控件实现,它可以创建一个包含多个选项卡的底部栏。每个选项卡对应一个不同的页面或功能,用户可以通过点击选项卡在这些页面之间切换。`BottomNavigation...

    Android Design新控件之TabLaout(二),仿微信实现App底部Tab布局

    通过以上步骤,我们成功地使用TabLayout和ViewPager实现了类似微信App的底部Tab布局。这个功能强大的组件使得开发者可以轻松地构建符合Material Design规范的用户界面,提供良好的导航体验。同时,通过自定义...

    tablayout+recyclerview 实现仿淘宝、京东商品详情滑动切换tab效果

    可以通过重写`OnScrollListener`的`onScrolled`方法,当滑动到顶部或者底部时,改变`TabLayout`的选中Tab。同时,我们还需要处理`TabLayout`与`RecyclerView`之间的同步问题,确保用户在滑动`RecyclerView`时,`...

    Android TabLayout 底部导航

    在Android应用开发中,TabLayout是一个非常常用的组件,它用于实现底部导航栏的效果,让用户能够轻松在多个页面间切换。本教程将详细讲解如何在Android Studio中集成并使用TabLayout来构建一个完整的底部导航功能。 ...

    Android滑动切换tab(切换带动画)

    要实现滑动切换Tab,我们通常会使用`ViewPager`配合`TabLayout`。`ViewPager`允许用户通过左右滑动来浏览页面,而`TabLayout`则提供了Tab标签的显示和管理。下面我们将逐步讲解如何构建这样的组件。 1. **添加依赖...

    使用TabLayout与ViewPager快速实现底部导航栏带图标和文字效果

    本文将详细介绍如何使用`TabLayout`和`ViewPager`来快速实现这样一个底部导航栏,同时包含图标和文字。 `TabLayout`是Android设计支持库中的一个组件,它提供了美观且易于定制的标签页布局。而`ViewPager`则是一个...

    TabLayout的Tab滑块

    3. TabLayout.setCustomView(int): 使用布局资源ID设置自定义tab视图。 4. TabLayout.setCustomView(View): 直接使用View对象设置自定义tab视图。 5. ViewPager.OnPageChangeListener:监听ViewPager页面滑动事件的...

    Android TabLayout、ViewPager实现顶部和底部Tab导航

    在Android应用开发中,创建一个具有顶部或底部Tab导航的界面是常见的需求,这使得用户可以轻松地在多个视图间切换。`TabLayout`和`ViewPager`是Android支持库中的两个关键组件,它们共同作用于实现这样的功能。本文...

    Android底部Tab页基于ViewPager的实现

    本教程将探讨如何利用ViewPager实现底部Tab页,为用户提供流畅的多页面浏览体验。 首先,我们需要了解ViewPager组件。ViewPager是Android SDK中的一个视图容器,用于展示可滑动的页面集合。它与PagerAdapter一起...

    使用RadioGroup及Fragment来实现底部Tab效果

    当然,随着Android设计指南的发展,现代应用更倾向于使用`BottomNavigationView`或第三方库如`TabLayout`来实现底部Tab,但了解基础的`RadioGroup`和`Fragment`实现方式有助于理解这些高级组件的工作原理。

    TabLayout+RecyclerView 防淘宝滑动切换Tab的效果

    在Android开发中,`TabLayout` 和 `RecyclerView` 是两个常用的组件,它们分别用于实现标签切换和列表展示。本文将详细讲解如何结合这两个组件来创建一个防淘宝滑动切换Tab的效果,即用户在滑动`RecyclerView`时不会...

    Tab Layout(选项卡布局)

    在实际开发中,`TabLayout`常被用于创建导航抽屉、底部导航栏、多面板布局等。例如,你可以结合`BottomNavigationView`来构建一个包含多个功能区域的应用。 总结,Tab Layout作为Android应用中的关键组件,提供了一...

Global site tag (gtag.js) - Google Analytics