1. 程式人生 > >自定義ViewGroup實現多個單頁面上下滑動效果

自定義ViewGroup實現多個單頁面上下滑動效果

閱讀過自定義ViewGroup實現仿淘寶的商品詳情頁的童鞋,應該都瞭解了ViewGroup中onMeasure、onLayout、onTouchEvent等相關方法的使用。在介紹仿淘寶商品詳情頁時,我們提到過現在網上很多實現方法是使用ScrollView巢狀兩個ScrollView。而我也提到過這樣實現的缺陷,很難進行擴充套件。而使用自定義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);

相關推薦

定義ViewGroup實現頁面上下滑動效果

閱讀過自定義ViewGroup實現仿淘寶的商品詳情頁的童鞋,應該都瞭解了ViewGroup中onMeasure、onLayout、onTouchEvent等相關方法的使用。在介紹仿淘寶商品詳情頁時,我們提到過現在網上很多實現方法是使用ScrollView巢狀兩個

Android 定義View實現行RadioGroup選(選)

我們都知道RadioGroup可以實現選擇框,但它有一個侷限性,由於它是繼承自LinearLayout的,所以只能有一個方向,橫向或者縱向; 好在我們可以自定義View來實現多行的一個RadioGroup(我把它命令為MultiLineRadioGroup); 在貼出程式碼

MapReduce-MulitipleOutputs實現定義輸出到目錄

輸入源資料樣例: Source1-0001 Source2-0002 Source1-0003 Source2-0004 Source1-0005 Source2-0006 Source3-0007 Source3-0008描述: Source1開頭的資料屬於集合A;Sou

android 定義ViewGroup實現仿淘寶的商品詳情頁

最近公司在新版本上有一個需要, 要在首頁新增一個滑動效果, 具體就是仿照X寶的商品詳情頁, 拉到頁面底部時有一個粘滯效果,  如下圖 X東的商品詳情頁,如果使用者繼續向上拉的話就進入商品圖文描述介面: 剛開始是想拿來主義,直接從網上找個現成的demo來用, 但是網上無一

定義Adapter實現檢視Item的ListView

From http://www.devdiv.com/adapter_item_listview-article-3730-1.html 1、原理分析         Adapter對於ListView是非常重要的,它處於listView和資料來源的中間,負責為L

【安卓定義控制元件】定義ViewGroup實現透明背景的ViewPager效果

HelloWorld! 作為一名屌絲程式設計師,在部落格園寫第一篇技術部落格內心是無比激動滴,其實作為一名忙成狗的Android開發人員,一直覺得自己永遠都不會有時間去寫部落格, 因為我TM連找女朋友的時間都沒用== 言歸正傳,今天自定義控制元件系列要實現的效果是自定義Vi

定義ViewGroup實現瀑布流效果

今天情人節,我卻在家裡看書寫程式碼,真屌絲啊哈~ 回顧:ViewGroup的時間分發流程: dispatchTouchEvent ----- onInterceptTouchEvent----- onTouchEvent 最外層的ViewGroup首先接收到觸控事件,然後

一個頁面實現管理頁面任意切換

在做專案的時候,我們有時候會遇到一種需求,一個頁面有兩種資料來源,也就對應著兩個列表頁。但是你不想新建兩個頁面: 一、是因為新建頁面多了本來就麻煩; 二、是頁面之間跳轉感覺太明顯,使用者體驗不是很好

13-定義物件(物件)

1 <!DOCTYPE html> 2 <html> 3 <head lang="en"> 4 <meta charset="UTF-8"> 5 <title></title> 6 </head&g

定義函式 返回值(指標)

#include "iostream.h"void calcu(int *a,int *b,int *l,int *angle){//進行相應的操作//比如...*l += *a;*angle += *

定義HttpMessageConverter處理不同陣列形式的JSON資料

需求 在一個成績管理系統中,有實體類Score和實體類Student,現需要對這兩個實體類關聯的資料庫表分別進行批量插入,因而需要處理兩種不同的JSON資料(均為陣列形式),並轉換為相應的List。在兩種實體類http請求中,Student類中的成員變數與對應

定義ViewGroup實現仿淘寶的商品詳情頁

最近公司在新版本上有一個需要, 要在首頁新增一個滑動效果, 具體就是仿照X寶的商品詳情頁, 拉到頁面底部時有一個粘滯效果,  如下圖 X東的商品詳情頁,如果使用者繼續向上拉的話就進入商品圖文描述介面: 剛開始是想拿來主義,直接從網上找個現成的demo來用, 但是網上無一

Django高階程式設計之定義Field實現語言

自定義資料庫欄位 擴充套件預設的models.CharField和models.TextField使之成為支援多語言的欄位。 可以輕鬆實現複用,無需配置多餘選項 from django.conf import settings from django.db import models from django.

Spring Boot入門系列(十七)整合Mybatis,建立定義mapper 實現表關聯查詢!

之前講了Springboot整合Mybatis,介紹瞭如何自動生成pojo實體類、mapper類和對應的mapper.xml 檔案,並實現最基本的增刪改查功能。mybatis 外掛自動生成的mapper 實現了大部分基本、通用的方法,如:insert、update、delete、select 等大概20個左右

bootstrap中利用Tag實現div的上下頁切換

func acc tex oot trap www. active cli ane 添加 nav 和 nav-tabs 類到 ul 中,將會應用 Bootstrap 標簽樣式,添加 nav 和 nav-pills 類到 ul 中,將會應用 Bootstrap 膠囊式樣式 &

[Swift通天遁地]八、媒體與動畫-(7)實現動畫的順序播放效果

end del ase created lan named 持續時間 cgpoint ecs 本文將演示使用第三方類庫,實現多個動畫的順序播放效果。 首先確保已經安裝了所需的第三方類庫。雙擊查看安裝配置文件【Podfile】 1 platform :ios, ‘

Axure8.0 頁面上下滑動效果實現

1.開啟Axure 8.0,在網上找一個iPhone外殼的圖片,然後新增大小和手機螢幕相等的動態面板,命名為“螢幕” 2.然後雙擊State1,新增一個矩形,寬度=螢幕寬度,長度任意。 然後選中矩形,點選滑鼠右鍵,選擇轉換為動態面板,命名為“內容

Springboot 定義404頁面

height quest text 個性化 .class else only ogg abi 在Springboot中,可以通過修改配置、或者在static文件夾下添加error文件夾引入個性化的404模版。但是如果需要針對不同url地址規則,返回不同樣式的404頁面,則難

頁面實現定時器(計時器)時選用NSTimer還是GCD?(幹貨不濕)

self. spa inf ima efault baidu 設定 common ref 定時器在我們每個人做的iOS項目裏面必不可少,如登錄頁面倒計時、支付期限倒計時等等,一般來說使用NSTimer創建定時器: + (NSTimer *)timerWithTimeInte

thinkphp 5.0如何實現定義404(異常處理)頁面

錯誤頁 自定義異常 異常錯誤 錯誤 load php 錯誤信息 art 正常 404頁面是客戶端在瀏覽網頁時,由於服務器無法正常提供信息,或是服務器無法回應,且不知道原因所返回的頁面。404承載著用戶體驗與SEO優化的重任。404頁面通常為用戶訪問了網站上不存在或已刪除的