手机淘宝上能够看出来这个效果,在产品图片Banner上滑动的时候, 滑动到最后
一页的时候可以跳转详情,其实也就是给其最后一页跳转监听,并且实现页面跳转。
效果图如下:

 主要使用了ViewPager+CirclePageIndicator,实现代码如下:bannerlayout.xml
<LinearLayout
            android:layout_width="match_parent"android:layout_height="144dp"android:orientation="horizontal"><LinearLayout
                android:layout_width="0dp"android:layout_height="match_parent"android:layout_weight="1"><RelativeLayout
                    android:layout_width="match_parent"android:layout_height="match_parent"android:layout_gravity="center"><android.support.v4.view.ViewPager
                        android:id="@+id/viewpager_banner"android:layout_width="match_parent"android:layout_height="match_parent"/><com.viewpagerindicator.CirclePageIndicator
                        android:id="@+id/circle_indicator"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_alignParentBottom="true"android:layout_centerHorizontal="true"android:padding="10dp"/></RelativeLayout></LinearLayout><LinearLayout
                android:id="@+id/ll_lookDetail"android:layout_width="43dp"android:layout_height="match_parent"android:background="#eff1f3"android:gravity="center_vertical"android:orientation="horizontal"android:visibility="gone"><ImageView
                    android:layout_width="15dp"android:layout_height="15dp"android:src="@drawable/asset_img_look_icon"/><TextView
                    android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="3dp"android:text="释\n放\n查\n看\n更\n多"android:textColor="#2493e7"android:textSize="11sp"/></LinearLayout></LinearLayout>

其中Activity中的实现代码如下:


import android.support.v4.view.ViewPager;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.viewpagerindicator.CirclePageIndicator;public class AActivity implements ViewPager.OnPageChangeListener {private LinearLayout mLookDetail;private int[] mImageIds = new int[]{R.drawable.asset_detail_banner, R.drawable.ic_fx_banner, R.drawable.asset_detail_banner};private ArrayList<ImageView> mAssertImgList;private ViewPager mViewPagerBanner;private int currentPageScrollStatus;private int count = 0;private CirclePageIndicator mCircleIndicator;@Override@Overridepublic void onCreate(Bundle savedInstanceState) {setContentView(R.layout.bannerlayout);mLookDetail = (LinearLayout) findViewById(R.id.ll_lookDetail);mViewPagerBanner = (ViewPager) findViewById(R.id.viewpager_banner);mCircleIndicator = (CirclePageIndicator) findViewById(R.id.circle_indicator);mAssertImgList = new ArrayList<ImageView>();//设置banner图for (int i = 0; i < mImageIds.length; i++) {ImageView view = new ImageView(this);view.setBackgroundResource(mImageIds[i]);mAssertImgList.add(view);}mViewPagerBanner.setAdapter(new BannerAdapter(getApplicationContext(), mAssertImgList));mCircleIndicator.setViewPager(mViewPagerBanner);mCircleIndicator.setOnPageChangeListener(this);}  @Overridepublic void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {if (position == mImageIds.length - 1) {if (positionOffsetPixels == 0 && currentPageScrollStatus == 1) {//count的作用是判断是否是第一次滑动到最后一页,如果每次都需要跳入详情,需删除该变量if (count == 0) {mLookDetail.setVisibility(View.VISIBLE);startActivityn(new Intent(AActivity.this,BActivity.class));}//此处count也需要删除count++;}} else {mLookDetail.setVisibility(View.GONE);}}@Overridepublic void onPageSelected(int position) {}@Overridepublic void onPageScrollStateChanged(int state) {currentPageScrollStatus = state;}
}

其中Adapter实现如下:


public class BannerAdapter extends PagerAdapter {private Context context;private ArrayList<ImageView> mImgList;public BannerAdapter (Context context, ArrayList<ImageView> mGuideImgList) {this.context = context;this.mAssertImgList = mGuideImgList;}@Overridepublic int getCount() {return mImgList.size();}@Overridepublic boolean isViewFromObject(View view, Object object) {return view == object;}@Overridepublic void destroyItem(ViewGroup container, int position, Object object) {container.removeView((View) object);}@Overridepublic Object instantiateItem(ViewGroup container, int position) {ImageView imageView = mImgList.get(position);container.addView(imageView);return imageView;}
}

代码中可能会由于改动,命名有不同,用的时候可以改动一下喽!bénir

源码下载地址:https://github.com/blythe104/SlideBannerDemo

注:由于ViewPager中包含多张图片,在返回的时候可能需要多次注销,需要添加该活动的模式如下:
android:launchMode=”singleTop”

仿淘宝Banner:左右滑动ViewPager+最后一张滑动查看详情相关推荐

  1. Android仿淘宝详情页面viewPager滑动到最后一张图片跳转的功能

    需要做一个仿淘宝客户端ViewPager滑动到最后一页,再拖动的时候跳到详情的功能,刚开始我也迷糊了,通过查阅相关资料发现有好多种实现方法,下面小编给大家分享实例代码,感兴趣的朋友一起看看吧 需要做一 ...

  2. Android仿淘宝、京东Banner滑动查看图文详情

    文章目录 写在前面 效果图 原理分析 核心代码 源码地址 写在前面 本文基于 ViewPager2 实现的 Banner 效果,进而实现了仿淘宝.京东Banner滑动至最后一页时继续滑动来查看图文详情 ...

  3. 仿淘宝商品详情-点击显示大图,可滑动

    现在在做一个商城类的项目: 大家都用过淘宝,需求就是要求仿淘宝的效果做一个, 直接上图 用到了一个项目PhotoView 大家运行一下看最后一个项目,把单一的图片显示改成VIewpager就好.

  4. uniapp仿淘宝详情页页面滑动tab切换

    uniapp仿淘宝详情页页面滑动tab切换 建立util文件夹放一个Tool.js: export default{getRect(selector){return new Promise((reso ...

  5. 自定义View之仿淘宝详情页

    自定义View之仿淘宝详情页 转载请标明出处: http://blog.csdn.net/lisdye2/article/details/52353071 本文出自:[Alex_MaHao的博客] 项 ...

  6. iOS物理碰撞、唱吧音频处理、仿淘宝联动效果等源码

    iOS精选源码 物理仿真 碰撞 陀螺仪 使用 仿淘宝详情和每日优鲜的一个联动效果 JJNetwork网络库 iOS列表选择弹框 网络视频直播类--原生socket音视频实时传输--智能家居 Skele ...

  7. HTML5响应式手机模板:电商网站设计——仿淘宝手机app界面模板源码 HTML+CSS+JavaScript...

    HTML5响应式手机模板:电商网站设计--仿淘宝手机app界面模板源码 HTML+CSS+JavaScript 手机电商模板 手机网站模板 企业手机网站模板 手机网站模板 手机模板 响应式手机网站 h ...

  8. 基于BootStrap仿淘宝星星商品评价案例

    <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...

  9. 仿淘宝详情页 直接上代码

    仿淘宝详情页 直接上代码 package com.example.liketitledemo;import android.content.Context; import android.graphi ...

  10. iOS物理碰撞、唱吧音频处理、仿淘宝联动效果等源码 1

    iOS精选源码 物理仿真 碰撞 陀螺仪 使用 仿淘宝详情和每日优鲜的一个联动效果 JJNetwork网络库 iOS列表选择弹框 网络视频直播类–原生socket音视频实时传输–智能家居 Skeleto ...

最新文章

  1. 不写一行代码,也能玩转Kaggle竞赛?
  2. PaaS下半场,任重且道远
  3. Excel提取超链接信息
  4. python 搭建登陆系统_Django 搭建CMDB系统完整[1](用户登录)
  5. Java线程详解(13)-锁
  6. 获取打开文件的路径和文件名
  7. 谈谈软件工程设计的艺术
  8. 服务器小白-MYSQL基础安装配置
  9. c语言给定一个单链表输入k,C语言实现单链表(不带头结点)的基本操作
  10. JAVA读取属性文件的几种方法
  11. 每日算法系列【LeetCode 329】矩阵中的最长递增路径
  12. VMware:虚拟化技术为运营商消除隐患
  13. 读《Android群英传》的一些感想
  14. OpenCV开发笔记(四十四):红胖子8分钟带你深入了解霍夫圆变换(图文并茂+浅显易懂+程序源码)
  15. SFFAI分享 | 张杰:针对图像处理网络的模型水印【附PPT与视频资料】
  16. Android内嵌H5,安卓手机返回键点击无反应、苹果手机返回键正常情况解决方案
  17. 操作系统实验:添加系统调用修改主机名(hostname)
  18. uniapp踩坑系列之二
  19. 如何做好 OSPO,推动企业开源丨雨林开源行
  20. 802协议族太网帧格式

热门文章

  1. 计算机如何寻找ppt文件,如何快速找到电脑里的文件ppt课件
  2. c语言计算机二级涉及内容,计算机二级(C语言)都考哪些内容?
  3. 【CV】MobileNetV2:具有倒置残差和线性瓶颈的 CNN 骨干网络
  4. 做博客推广的SEO外链计划
  5. 小白疑问3dsmax和maya的区别有什么?大佬来给你解答
  6. Android逆向Unity3D——XXX快跑破解
  7. el-table 样式设置
  8. php把字体调大,phpDesigner 8调整字体大小的方法。
  9. 所谓更牛,就是换个罪受!——《时间的朋友2016跨年演讲》深入笔记
  10. android 混淆 minifyEnabled