Design库-TabLayout仿京东商品详情Tab

作者: 积木Blocks | 来源:发表于2016-06-13 23:37 被阅读9509次

1.京东的商品详情Tab样式

京东商品详情

上图中可以看到它大致的样式,不过还是不够清晰,下面我们用放大它:

京东商品详情Tab

简单分析一下需求:

1.需要一个TabLayout来展示“商品”,“详情”,“评价”三个页面,需要利用TabLayout和ViewPager,Fragment来实现

2.TabLayout位于Toolbar中,需要用Toolbar来包裹TabLayout实现

3.TabLayout的Tab选择时,字体比未选中大了一号,自带的Api中tabTextAppearance(文字样式)已经不能满足了。需要自定义Tab

如果不是很熟悉TabLayout的,可以参考TabLayout属性详解


2.实现效果前的准备

Design库:Design库地址 | V7包:V7包地址


3.效果展示 

仿京东商品详情效果

4.源码实现

4.1-主页面布局

主界面布局

由于默认的Toolbar只能显示文字和图标,需要使用TabLayout需要向上图的方式嵌入到Toolbar中,LinearLayout是为了让TabLayout居中而添加的,这样虽说实现了效果可是增加了布局的层次。接下来就是一个普通了ViewPager。

4.2-初始化控件

首先findViewById,我这里使用了butterknife-7.0.1.jar。

初始化寻找控件

初始化ViewPager

初始化ViewPager

在ViewPager页面改动的时候,设置TabLayout的联动:

tlTitle.getTabAt(paramInt).select();

初始化toolbar和TabLayout


初始化toolbar和TabLayout

设置TabLayout的监听


设置TabLayout的监听

在Tab选中的时候,设置ViewPager的联动:

vpProductDetails.setCurrentItem(paramTab.getPosition());


5.其他源码

ViewPager的适配器:

ViewPager适配器

这里需要注意的是需要手动写入getPageTitle(0方法.


6.后记

TabLayout还可以实现很多样式,等着我们去慢慢发掘。

相关文章

  • Design库-TabLayout仿京东商品详情Tab

    1.京东的商品详情Tab样式 上图中可以看到它大致的样式,不过还是不够清晰,下面我们用放大它: 简单分析一下需求:...

  • TabLayout 的用法小记

    TabLayout是用来显示tab的控件,要使用TabLayout首先要引入design开发库: implemen...

  • Android TabLayout重设Tab点击事件

    Android design支持库中提供的TabLayout默认把Tab的OnClickListener给写死了,...

  • UI仿写

    Android 仿京东、天猫 app 的商品详情页的布局架构, 以及功能实现 仿京东、天猫 app 的商品详情页自...

  • 仿京东天猫商品详情页

    1.参考借鉴 Android仿京东商品详情页上拉查看图文详情 模仿淘宝、京东、蘑菇街商品详情页,可嵌套ListVi...

  • Android交互

    仿淘宝、京东拖拽商品详情(可嵌套ViewPager、ListView、WebView、FragmentTabhos...

  • webview

    仿淘宝、京东拖拽商品详情(可嵌套ViewPager、ListView、WebView、FragmentTabhos...

  • Android列表,嵌套滑动

    仿淘宝、京东拖拽商品详情(可嵌套ViewPager、ListView、WebView、FragmentTabhos...

  • Design包下TabLayout的简单使用

    Android design支持库中的TabLayout一般都用来实现头部Tab的效果。例如: 但是像微信这种底部...

  • 使用TabLayout实现底部Tab布局

    Android design支持库中的TabLayout一般都用来实现头部Tab的效果,比如: 但是像微信这种底部...

网友评论

  • 龙城小将:可以设置下划线长度小于TabLayout单个item的背景宽度吗????
  • 刘sir_418e:你好,lTitle.getTabAt(position).select(); 报空,然后 item_title 布局可以展示出来吗。
  • huangyirui:请问怎么实现tab始终居中显示,比如,选中详情,详情居中,选中评价,评价在中间,商品在评价位置,详情在商品位置,这样的效果怎么实现
  • 蓝枫zeke:你好?setCustomView中布局文件是怎么写的?
    积木Blocks:就是一个简单的TextView
  • interestlearn:楼主 源码 谢谢 :joy:
    积木Blocks:@interestlearn 源码估计不在了。。。:grin:相信你自己可以敲出来的
  • fendo:赞一个
  • 2a47ddbb94b7:额。。。我是按照你贴出的代码写。怪不得
    积木Blocks:@Code丁 不知道最近有没有改这个tablayout,toolbar新增了几个api。具体你还是得看看源码,最好自己整理下。
  • 2a47ddbb94b7:请问楼主,你如何保持选项卡居中
    2a47ddbb94b7:@自导自演的机器人 toobar.setNavigationIcon(R.drawable.icon_back);用了这个,就偏右
    2a47ddbb94b7:@自导自演的机器人 我按照你上面的主布局写的,但显示出来,偏右
    积木Blocks:@Code丁 外面包裹了一个线性布局,设置gravity为居中
  • 2a47ddbb94b7: app:tabTextAppearance="@style/TitleUnselectedStyle"/> 请问楼主。这个style有吗?
    2a47ddbb94b7:@自导自演的机器人 可以的话,楼主能否发你这个GIF图的demo源码?我看看我哪里做不对?效果没对上
    积木Blocks:@Code丁 这个就是设置字体大小和颜色的,有用的
  • 85771860e525:菜鸟一枚,学习了 :+1:
    积木Blocks:@hxxxxxxxk 我也是菜鸟 一起学习 -。-
  • pal_xie:不错, 希望楼主能放出demo
  • hackware:好麻烦,用我的框架试试
    积木Blocks:@就这样很好 你点他的头像进去看,有他的文章
    就这样很好:你的什么框架啊?能让我看看嘛
    积木Blocks:@hackware 这个原生的,样式比较单一。我就是看看能不能实现。

本文标题:Design库-TabLayout仿京东商品详情Tab

本文链接:https://www.haomeiwen.com/subject/ktoydttx.html