自定义ViewGroup实现多个单页面上下滑动效果

@转载自

zxm317122667的bolg


阅读过自定义ViewGroup实现仿淘宝的商品详情页的童鞋,应该都了解了ViewGroup中onMeasure、onLayout、onTouchEvent等相关方法的使用。在介绍仿淘宝商品详情页时,我们提到过现在网上很多实现方法是使用ScrollView嵌套两个ScrollView。而我也提到过这样实现的缺陷,很难进行扩展。而使用自定义ViewGroup的话就可以根据自己的需要扩展功能了。

今天我们介绍的这篇文章就是在自定义ViewGroup实现仿淘宝的商品详情页这篇的基础上进行的功能扩展!

首先说一下实现的需要,直接上图

这里写图片描述
图中的McoySnapPageLayout中一共包含5个McoySnapPage(可上下滑动的单页)。 其中上面三个红绿蓝是3个ScrollView,下面两个是WebView分别来显示百度首页和自定义ViewGroup实现仿淘宝的商品详情页


接下来说一下对于API的更改:

之前我们使用McoyProductDetailInfoPage和McoyProductContentPage这两个类来分别表示商品详情页的第一页和第二页。
但是既然我们要实现可以往McoySnapPageLayout中无限添加单页面,那就没有所谓的第一页和第二页了。 因此在v2.0版本中以上两个类已经放弃使用了! 取而代之的是McoyScrollSnapPage和McoyWebSnapPage这两个类。

简单介绍

McoyScrollSnapPage

内部实现了一个ScrollView,如果想将自己工程中的某布局显示在ScrollView中,并添加到McoySnapPageLayout以单页的方式显示的话,只需要做2步操作即可:

//
//1 构造McoyScrollSnapPage对象,并传入需要添加到自定义ViewGroup中的布局id
McoyScrollSnapPage m1 = new McoyScrollSnapPage(this, R.layout.test1);
//2 将m1对象添加到自定义ViewGroup中
McoySnapPageLayout.addSnapPage(m1);

 
 

McoyWebSnapPage

内部实现了一个WebView用来加载网页信息。如果想使用WebView显示某网页信息,并添加到McoySnapPageLayout以单页的方式显示的话,只需要做2步操作即可:

//1 构造McoyWebSnapPage对象,并传入需要显示的具体网址
McoyWebSnapPage w2 = new McoyWebSnapPage(this, "http://blog.csdn.net/zxm317122667/article/details/47018357");
//2 将w2对象添加到自定义ViewGroup中
McoySnapPageLayout.addSnapPage(w2);
 

猜你喜欢

转载自blog.csdn.net/o1a2s3/article/details/44515187