首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Carson带你学Android:底部顶部Tab导航栏快速实现-TabLayout+ViewPager+Fragment

5.0以后的TabLayout 最近推出的 Bottom navigation 在上一篇我介绍了如何使用(Fragment+FragmentTabHost+ViewPager) 实现底部菜单栏,详情请看...底部Tab菜单栏实现(FragmentTabHost+ViewPager+Fragment) 今天我手把手教大家如何使用TabLayout+ViewPager+Fragment的组合来实现顶部和底部...概念介绍 1.1 TabLayout 定义:实现Material Design效果的控件库(Android Design Support Library); 作用:用于实现点击选项进行切换选项卡的自定义效果...,接收它自己的事件,并可以在activity运行时被添加或删除 3.Fragment不能独立存在,它必须嵌入到activity中,而且Fragment的生命周期直接受所在的activity的影响。...总体设计思路 TabLayout:点击切换选项卡 Fragment:存放不同选项的页面内容 ViewPager:实现页面的左右滑动效果 3.

1.6K21

首页-底部&顶部Tab导航(菜单栏)的实现:TabLayout+ViewPager+Fragment

5.0以后的TabLayout 最近推出的 Bottom navigation 在上一篇我介绍了如何使用(Fragment+FragmentTabHost++ViewPager) 实现底部菜单栏,...详情请看 底部Tab菜单栏实现(FragmentTabHost+ViewPager+Fragment) 今天我手把手教大家如何使用TabLayout+ViewPager+Fragment的组合来实现顶部和底部...概念介绍 1.1 TabLayout 定义:实现Material Design效果的控件库(Android Design Support Library); 作用:用于实现点击选项进行切换选项卡的自定义效果...2.它具有自己的生命周期,接收它自己的事件,并可以在activity运行时被添加或删除 3.Fragment不能独立存在,它必须嵌入到activity中,而且Fragment的生命周期直接受所在的...总体设计思路 TabLayout:点击切换选项卡 Fragment:存放不同选项的页面内容 ViewPager:实现页面的左右滑动效果 ---- 3.

4.1K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout

    所以我们就在AppBarLayout里面的CollapsingToolbarLayout进行了如下设置: android.support.design.widget.CollapsingToolbarLayout...我在做这里的时候遇到一个问题,那就是CollapsingToolbarLayout里的Title的问题,一般默认是显示的,即使你不写,它也有会一个默认值一直显示在那里,等折叠收缩完的时候,停留在标题工具栏上...Toolbar 是在 Android 5.0 开始推出的一个 Material Design 风格的导航控件 ,Google 非常推荐大家使用 Toolbar 来作为Android客户端的导航栏,以此来取代之前的...TabLayout提供一个水平布局来显示选项卡。TabLayout一般都是配合ViewPager一起来使用。...如果设计的需求不要求选项卡在切换时附带有图标的切换效果,仅仅文字的颜色发生变化以响应用户的点击事件,那么TabLayout和ViewPager建立联系可以用官方提供的方法,它可以做到交互双向联动,也就是点击

    2.3K90

    项目需求讨论 - HyBrid 模式需求改造

    比如:Spinner下拉框功能使用 这里我提二个大家可能会额外遇到的情况: 在写完spinner的每个选项的点击事件后。...what the fuck,我都还没有进行点击选项,怎么就被调用了。因为Spinner默认显示第一项内容,等于就是选中了第一项,也就会执行一遍onItemSelected方法。...比如说Material Design 之 TabLayout 使用 同样也会提到一个比较好的需求: 需求1:比如菜单只有3个,那我们肯定是希望在一个屏幕中就能显示,并且是平分的方式,呈现: 需求2:比如恰好菜单有...接下去就是我们点击我们原生的按钮的时候,可以去让这个网页发生变化。让网页发生变化其实就是网页端调用js方法来让页面动态发生变化,那问题就知道了。我们的java就远程调用JS的方法不就OK了么。...有些需求是要JS回调我们这边JAVA的方法,这个项目中,我们用户登录界面等都是在网页处的,但是要求我们这个原生App的外壳本身要有自动登录功能,登录一次后就不需要在网页上再次登录。

    12510

    Android开发之漫漫长途 Fragment番外篇——TabLayout+ViewPager+Fragment

    这里我就不打码了,,哈哈哈哈 TabLayout TabLayout的静态使用 TabLayout是Android 5.0之后Google提供的一系列Material Design设计规范中的一个控件。...其实从ViewPager的说明中,我们基本上就能知道ViewPager是什么以及如何使用了。...进行绑定时,提供显示的标题。...在本例中,也是我们在显示TAB1的时候,ViewPager已经加载了TAB2,具体方式是通过instantiateItem方法,该方法内部调用了我们重写的getItem方法,TAB2所表示的Fragment...本篇总结 我们在本篇博客中比较详细的探讨了TabLayout+ViewPager+Fragment的使用,我们在许多主流App中都能看到这种顶部、底部导航的效果,并且在此基础上我们探讨了TabLayout

    1.8K10

    【Android开发基础系列】Layout布局专题

    在 Android 中布局通常有以下几种不同的情况:         FrameLayout(框架布局):系统默认的在屏幕上就有空白区显示它;         LinearLayout(线性布局):让所有的子视图都成为单一的方向...,即垂直的或者水平的;         AbsoluteLayout(绝对布局):让子视图使用x/y坐标确定在屏幕上的位置;         RelativeLayout(相对布局):让子视图的位置和其他的视图相关...不同元素位置的控制通过定义 android:layout_gravity属性来完成,android:layout_gravity 可以在各个 View 中使用:top、bottom、left、right...这跟Windows控件的dockstyle属性大体一致。设置一个顶部布局或控件为fill_parent将强制性让它布满整个屏幕。...所有添加到这个布局中的视图都以层叠的方式显示。第一个添加的控件被放在最底层,最后一个添加到框架布局中的视图显示在最顶层,上一层的控件会覆盖下一层的控件。这种显示方式有些类似于堆栈。

    38020

    TabLayout+ViewPager+Fragment实现切页展示「建议收藏」

    创建这两个类的实例需要传入一个FragmentManager对象,像代码那样处理就行了,从类名就可以看出来它俩的最大差别就在“State-状态”上,什么意思呢?...如果这么简单地调用函数就能实现懒加载的话,那也没什么好说的,但是这里又有一个巨坑,则是因为这个setUserVisibleHint函数是游离在Fragment生命周期之外的,它的执行有可能早于onCreate...Google为了避免用户因翻页而造成卡顿,采用了缓存的形式,但是其实缓不缓存,只要该Fragment会显示,都会进行Fragment创建,都会耗费相应的时间,换言之,缓存只不过将本应该在翻页时的卡顿集中在启动该...后者卡顿通过懒加载的形式能够完美解决,而前者因实例创建引起的卡顿则提出了三种不同的优化选择,应该说,每一种方案都有利有弊,并没有绝对的好与不好,在项目运用中,还是得根据需求和实际情况来进行选择,当然,要从内存泄漏...总之,Fragment是Android中最为重要的知识点之一,我在总结本博客的过程之中也有很大的收获,多看源码了解问题的根源过后再对症下药,不失为一种程序员的基本素养。

    3.3K10

    优雅地修改 TabLayout 指示线 Indicator 的宽度

    本文总结了几种修改 Indicator 宽度的方案,并讨论如何「优雅」地修改它。 反射 如果你的项目中也有修改指示线宽度的需求,并且已经在网上找过修改方法,很可能你现在项目中用的就是这个方法。...我们可以通过把 Indicator 的颜色设为透明来隐藏它: android.support.design.widget.TabLayout android:id="@+id/tab_layout...,控制指示线的显示隐藏: tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { @Override...使用 Drawable 样式 最后这种方案,是我认为最优雅的解决方案,使用也特别简单。在网上还没看到有人使用,可以算是我的原创了,哈哈。...(R.drawable.tab_indicator); 复制代码 效果如下: image.png 从上面这个例子还可以发现,使用这个方法,不仅可以在视觉上增加 Indicator 的左右边距,还可以增加它的上下边距

    7.5K60

    如何自定义TabLayout样式

    前言 在Android开发中经常会遇到tab页面,这样就需要tab+viewpager的方式来进行处理。...但是其实使用默认的TabItem也可以实现很多样式,我们可以使用一些巧妙的方法来达到我们需要的效果,比如: 下面我们就看如何一步步实现上面的效果 改变字体颜色、大小 这个很简单,xml中直接设置即可:...="16sp" 靠左显示 默认情况下所有item是等分显示的,想靠左显示,则需要设置 app:tabMode="scrollable" 这个设置其实是允许TabLayout滚动,这样就可以实现滚动效果的...确实反射可以实现,但是我尽力避免使用反射,主要还是兼容问题。我希望用更正式的方式来处理。 经过思考尝试,可以将view强转成View类型,因为即使官方代码大量改动,它依然一定是一个View。...而Indicator实际上是根据选中的item的位置及偏移动态绘制的,并不属于某个item,所以可以实现滑动的动画。

    2.8K30

    【Android从零单排系列二十八】《Android视图控件——TabHost》

    一 TabHost基本介绍 通常用于描述Android应用程序中实现Tab布局的一种方法。Tab布局是一种常见的用户界面布局方式,允许用户在不同的选项卡之间切换内容。...通过使用TabHost和TabWidget,开发人员可以轻松创建带有选项卡的界面,并在用户点击选项卡时切换到相应的内容页面。每个选项卡都可以包含独立的视图或片段,以呈现不同的功能或信息。...注:自Android API level 21起,Google推出了更为灵活和强大的TabLayout组件,可以更方便地实现Tab布局,并提供更多自定义和样式选项。...android:defaultTab:指定默认显示的选项卡标签。...调用addTab()将选项卡添加到TabHost中。 可以通过setCurrentTab()方法设置默认显示的选项卡。

    34320

    打造自己的 APP「冰与火百科」(四):WebView 交互、夜间模式

    WebView 交互 在详情页面我是用 WebView 展示的,我想实现的交互是,点击 WebView 的内容跳转另一个页面。...实现过程是,让 HTML 代码调用 JavaScript 代码,再让 JavaScript 代码调用 Android 的代码,下面看看如何实现。...HTML 先看 HTML 代码,假如在文本内容里有一个可以跳转的「凯特琳·徒利」,让他去调用 skip.js 的代码,指定 CatelynTully() 方法: Android 在客户端添加 goDetail 方法,我把 JavaScript 和 Java 交互的代码写在一个类里,记得给方法加上 @JavascriptInterface 注解: public class...,在重新设置颜色的部分比较繁琐,但这是我目前看到效果比较好的实现方式。

    1.3K20

    使用TabLayout看这篇就够了

    里加上 compile 'com.android.support:design:25.0.0' 然后基本上就不会有什么问题了。...前面说过了TabItem本质上也是View,我们可以根据自己的实际需求来重写这个View。 ? icon在右边 ?...到现在我们还没有上TabLayout的用法相关代码,下面我们来一个相对标准的使用简介,通常情况下大家会这么写。 ? ? ? 运行起来之后,居然是这个样子的。我的标题呢? ?...拿标准的Tablayout就套不进去了,首先它没有tabIndicator,关于如何去除tabIndicator在之前已经讲过,这里不再赘述。其次这两个Tab一个是有icon,一个是没有icon的。...没准切换的时候,产品经理让icon还要带点动画效果,所以这里我们随便来了个属性动画,在点击和切换的时候触发: ?

    3K30

    首页-底部Tab导航(菜单栏)的实现:FragmentTabHost+ViewPager+Fragment

    - FragmentTabHost - 5.0以后的TabLayout - 最近推出的 Bottom navigation 今天带大家来探索下如何用Fragment+FragmentTabHost...总体设计思路 Fragment:存放不同选项的页面内容 FragmentTabHost:点击切换选项卡 ViewPager:实现页面的左右滑动效果 概念介绍 1....,接收它自己的事件,并可以在activity运行时被添加或删除 3.Fragment不能独立存在,它必须嵌入到activity中,而且Fragment的生命周期直接受所在的activity的影响...作用 主要是为了支持更动态、更灵活的界面设计(从3.0开始引入) 具体使用请参考我写的另外一篇文章Android开发:Fragment介绍&使用方法解析 底部菜单栏实现步骤 在主xml布局里面定义一个...,让它控制页面切换 } } 效果图 经过上述6个步骤就完成了可滑动的底部菜单栏了,效果图如下: ?

    1.9K20

    Carson带你学Android:手把手教你优雅实现首页-底部Tab导航(菜单栏)

    5.0以后的TabLayout 最近推出的 Bottom navigation 今天带大家来探索下如何用Fragment+FragmentTabHost++ViewPager实现底部菜单栏 目录 总体设计思路...Fragment:存放不同选项的页面内容 FragmentTabHost:点击切换选项卡 ViewPager:实现页面的左右滑动效果 概念介绍 1....Fragment 定义 Fragment是activity的界面中的一部分或一种行为 1.把Fragment认为模块化的一段activity 2.它具有自己的生命周期,接收它自己的事件,并可以在activity...作用 主要是为了支持更动态、更灵活的界面设计(从3.0开始引入) 具体使用请参考我写的另外一篇文章Android开发:Fragment介绍&使用方法解析 实现步骤 在主xml布局里面定义一个FragmentTabHost...,让它控制页面切换 } } 效果图 经过上述6个步骤就完成了可滑动的底部菜单栏了,效果图如下: 完整Demo下载地址 Carson_Ho的Github:Tab_menu_Demo 总结

    91830

    Android TabLayout 使用进阶(含源码)

    同样为了方便演示我这里的MainActivity的布局中只放按钮,方便根据不同的使用方式进入不同的页面进行相应的演示。下面修改activity_main.xml。 的,而中文标题的话通常我们是在选中时更改文字大小,而上图中,你会发现第一次进入时,是默认选中的第一个Tab,它的文字并没有大写,这是因为它没有触发监听...基本上这个就能满足你的需求了,那么这个TabLayout的基本使用就介绍完了,有想要我添加的可以评论区留言哦,否则我就会以为你们都会了。...② 创建Fragment 这里tabItem就是用来控制菜单图片的。现在布局已经写好了,下面来写代码。 我们的主页面自然也需要显示多个Fragment,通过ViewPager来进行切换。...rs.destroy(); return outBitmap; } } 这个工具类的代码我也是从网络上找的。

    3.2K33

    Android 实现锚点定位

    大家好,又见面了,我是你们的朋友全栈君。 相信做前端的都做过页面锚点定位的功能,通过 去设置页面内锚点定位跳转。...isScroll; //记录上一次位置,防止在同一内容块里滑动 重复定位到tablayout private int lastPos; //模拟数据,填充scrollview for (int i...定义变量标志lastPos,当scrollview 在同一模块中滑动时,则不再去调用tabLayout.setScrollPosition刷新标签。...所以这里需要处理下最后一个view的高度,当不满全屏时,重新设置他的高度,通过计算让其撑满屏幕。...写到这里,tablayout + scrollview的锚点定位成型了,在实际项目中,我们还可以使用tablayout + recyclerview 来完成同样的效果,后续的话会带来这样的文章。

    1K20

    Android原生TabLayout使用全解析,看这篇就够了

    前言 为什么会有这篇文章呢,是因为之前关于TabLayout的使用陆陆续续也写了好几篇了,感觉比较分散,且不成体系,写这篇文章的目的就是希望能把各种效果的实现一次性讲齐,所以也有了标题的「看这篇就够了」...是的,早期的api确实不够丰富,在某些需求的实现上显得捉襟见肘,但是google也在不断的迭代,目前为止,常见的样式都能满足。...,如何提示未展示的信息呢,比如上面我们如何把未显示的tab且有数字的Tab提示出来呢?...常见的解决方案都是在尾部加一个红点提示。 那么问题来了,如何判断某一个Tab是否可见呢,翻看了源码,可惜并没有提供相应的api,那只能我们自己实现了。...同时在TabLayout滑动的过程中也应该加上判断显示的逻辑: // mBinding.tabLayout7.setOnScrollChangeListener() // min api

    10K41
    领券