Android design支持库中的TabLayout一般都用来实现头部Tab的效果,
比如:
但是像微信这种底部Tab布局在我们实际项目中还是非常常见的设计,
现在我们也可以用TabLayout非常方便的实现。
布局
下面我们开始实现底部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; } |
相关推荐
Android 基于TabLayout实现的TAB页导航切换效果 仿今日头条底部的TAB选项卡效果,TabLayout与ViewPager结合使用可以达到点击tab更新ViewPager、滑动ViewPager更新Tab的效果。这种效果现在在PC端、移动设备端已经很...
在Android开发中,`TabLayout`是Google提供的一个用于创建底部导航栏或者顶部标签页的组件,常与`ViewPager`配合使用,实现页面间的切换。本文将深入探讨如何自定义`TabLayout`的tab和指示器,以实现更加个性化的...
下面,我们将深入探讨如何使用TabLayout实现底部和顶部导航栏,并介绍相关的重要知识点。 1. **TabLayout的引入** 在项目中使用TabLayout之前,首先需要在build.gradle模块文件中添加对Design库的依赖: ```...
虽然`TabLayout`更常用于底部导航,但如果你想要实现一种不依赖`ViewPager`的简单底部导航,可以考虑使用`RadioGroup`配合`RadioButton`。每个`RadioButton`代表一个页面,当用户点击某个按钮时,相应的内容区域会被...
本文将深入讲解如何使用TabLayout实现Android应用底部Tab的示例代码。 首先,TabLayout是Android支持库中的一个组件,它是Material Design组件库的一部分,用于在顶部或底部创建标签式导航。在底部Tab导航中,...
`TabLayout`是Android Design Support Library中的一个重要组件,它提供了美观且易于使用的标签页功能,可以与`ViewPager`结合使用,实现底部Tab栏的交互效果。本文将详细介绍如何使用`TabLayout`和`ViewPager`在...
要实现"底部tab和顶部tab"的效果,我们需要两层TabLayout:一层作为底部导航,另一层作为顶部导航。底部TabLayout通常包含固定的几个选项,如“首页”、“发现”、“我”等,而顶部TabLayout则可以在用户选择某个...
在Android应用开发中,创建一个具有底部Tab栏的界面是常见的需求,这通常涉及到`ViewPager`、`TabLayout`和`Fragment`的结合使用。`ViewPager`用于展示多个页面,`TabLayout`作为标签页来切换`ViewPager`中的页面,...
首先,底部Tab布局通常由Android的`BottomNavigationView`控件实现,它可以创建一个包含多个选项卡的底部栏。每个选项卡对应一个不同的页面或功能,用户可以通过点击选项卡在这些页面之间切换。`BottomNavigation...
通过以上步骤,我们成功地使用TabLayout和ViewPager实现了类似微信App的底部Tab布局。这个功能强大的组件使得开发者可以轻松地构建符合Material Design规范的用户界面,提供良好的导航体验。同时,通过自定义...
可以通过重写`OnScrollListener`的`onScrolled`方法,当滑动到顶部或者底部时,改变`TabLayout`的选中Tab。同时,我们还需要处理`TabLayout`与`RecyclerView`之间的同步问题,确保用户在滑动`RecyclerView`时,`...
在Android应用开发中,TabLayout是一个非常常用的组件,它用于实现底部导航栏的效果,让用户能够轻松在多个页面间切换。本教程将详细讲解如何在Android Studio中集成并使用TabLayout来构建一个完整的底部导航功能。 ...
要实现滑动切换Tab,我们通常会使用`ViewPager`配合`TabLayout`。`ViewPager`允许用户通过左右滑动来浏览页面,而`TabLayout`则提供了Tab标签的显示和管理。下面我们将逐步讲解如何构建这样的组件。 1. **添加依赖...
本文将详细介绍如何使用`TabLayout`和`ViewPager`来快速实现这样一个底部导航栏,同时包含图标和文字。 `TabLayout`是Android设计支持库中的一个组件,它提供了美观且易于定制的标签页布局。而`ViewPager`则是一个...
3. TabLayout.setCustomView(int): 使用布局资源ID设置自定义tab视图。 4. TabLayout.setCustomView(View): 直接使用View对象设置自定义tab视图。 5. ViewPager.OnPageChangeListener:监听ViewPager页面滑动事件的...
在Android应用开发中,创建一个具有顶部或底部Tab导航的界面是常见的需求,这使得用户可以轻松地在多个视图间切换。`TabLayout`和`ViewPager`是Android支持库中的两个关键组件,它们共同作用于实现这样的功能。本文...
本教程将探讨如何利用ViewPager实现底部Tab页,为用户提供流畅的多页面浏览体验。 首先,我们需要了解ViewPager组件。ViewPager是Android SDK中的一个视图容器,用于展示可滑动的页面集合。它与PagerAdapter一起...
当然,随着Android设计指南的发展,现代应用更倾向于使用`BottomNavigationView`或第三方库如`TabLayout`来实现底部Tab,但了解基础的`RadioGroup`和`Fragment`实现方式有助于理解这些高级组件的工作原理。
在Android开发中,`TabLayout` 和 `RecyclerView` 是两个常用的组件,它们分别用于实现标签切换和列表展示。本文将详细讲解如何结合这两个组件来创建一个防淘宝滑动切换Tab的效果,即用户在滑动`RecyclerView`时不会...
在实际开发中,`TabLayout`常被用于创建导航抽屉、底部导航栏、多面板布局等。例如,你可以结合`BottomNavigationView`来构建一个包含多个功能区域的应用。 总结,Tab Layout作为Android应用中的关键组件,提供了一...