Android ViewPager微信滑动翻页UI实现

仿微信的滑动翻页 UI,手感丝滑,交互顺畅,蛮适合用在引导页、图文浏览、甚至是嵌套网页浏览这类场景里。用的是 Android 原生的 ViewPager,配合 OnPageChangeListener 和自定义 PageTransformer,效果还挺接近微信的。

核心就是监听滑动事件,像 onPageScrolledonPageSelected 这些方法,平常用得挺多。你可以在用户滑动时做一些联动,比如加载新内容、切换动画什么的,响应也快。

页面指示器这块,也有思路。你可以用像 CirclePageIndicator 这种库,要是对 UI 要求高的话,自己画也是 OK 的。动画这块,如果默认的不够用,自定义个 PageTransformer,重写 transformPage,就能玩出多花样。

别忘了性能,ViewPager 默认会预加载页面,虽然滑起来更流畅,但内存吃得也多。建议根据你页面复杂度,合理调下 setOffscreenPageLimit 的值。

另外如果你页面里嵌了 WebView,比如做个滑动看网页的 demo,记得控制好 WebView 的生命周期,加载缓存、关掉不必要的 JS,性能和安全性都会更好。

如果你在做 App 首屏滑动引导、内容阅读器,或者微信风格的多页展示,这套实现方式可以直接上手,省事不少。

zip
WebViewDemo.zip 预估大小:48个文件
folder
WebViewDemo 文件夹
folder
bin 文件夹
file
classes.dex 678KB
folder
res 文件夹
folder
crunch 文件夹
folder
drawable-hdpi 文件夹
file
ic_launcher.png 6KB
folder
drawable-xhdpi 文件夹
file
ic_launcher.png 9KB
folder
drawable-xxhdpi 文件夹
file
ic_launcher.png 17KB
folder
drawable-mdpi 文件夹
file
ic_launcher.png 3KB
file
jarlist.cache 120B
folder
dexedLibs 文件夹
file
android-support-v4-d1eb1e23113af8803060ecc2dc422bca.jar 229KB
folder
classes 文件夹
folder
com 文件夹
folder
example 文件夹
folder
webviewdemo 文件夹
file
BuildConfig.class 355B
file
WebViewDemo$1.class 1KB
file
R$layout.class 409B
file
R$id.class 469B
file
R$drawable.class 422B
file
WebViewDemo$2.class 970B
file
R$dimen.class 476B
file
WebViewDemo.class 2KB
file
R$attr.class 355B
file
R$menu.class 412B
file
R.class 723B
file
R$string.class 487B
file
R$style.class 446B
file
resources.ap_ 40KB
file
AndroidManifest.xml 861B
file
WebViewDemo.apk 275KB
folder
res 文件夹
folder
drawable-ldpi 文件夹
folder
values-v11 文件夹
file
styles.xml 324B
folder
menu 文件夹
file
web_view_demo.xml 254B
folder
values-v14 文件夹
file
styles.xml 381B
folder
drawable-hdpi 文件夹
file
ic_launcher.png 7KB
folder
drawable-xhdpi 文件夹
file
ic_launcher.png 12KB
folder
drawable-xxhdpi 文件夹
file
ic_launcher.png 24KB
folder
values 文件夹
file
strings.xml 221B
file
styles.xml 680B
file
dimens.xml 213B
folder
values-sw720dp-land 文件夹
file
dimens.xml 269B
folder
drawable-mdpi 文件夹
file
ic_launcher.png 4KB
folder
values-sw600dp 文件夹
file
dimens.xml 196B
folder
layout 文件夹
file
main.xml 793B
file
proguard-project.txt 781B
file
ic_launcher-web.png 50KB
folder
assets 文件夹
file
demo.html 512B
folder
gen 文件夹
folder
com 文件夹
folder
example 文件夹
folder
webviewdemo 文件夹
file
BuildConfig.java 165B
file
R.java 2KB
folder
.settings 文件夹
file
org.eclipse.jdt.core.prefs 173B
folder
src 文件夹
folder
com 文件夹
folder
example 文件夹
folder
webviewdemo 文件夹
file
WebViewDemo.java 2KB
file
.project 814B
file
.classpath 466B
file
project.properties 563B
file
AndroidManifest.xml 861B
folder
libs 文件夹
file
android-support-v4.jar 613KB
...
zip 文件大小:1.41MB