ViewPager 案例(一)
来源:互联网 发布:linux tesseract yum 编辑:程序博客网 时间:2024/06/06 13:17
activity_main.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <android.support.v4.view.ViewPager android:id="@+id/vp_demo" android:layout_width="fill_parent" android:layout_height="fill_parent" > </android.support.v4.view.ViewPager><span style="font-size:10px;"></LinearLayout></span>layout1.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:gravity="center_horizontal" android:background="#E0FFFF"> <TextView android:layout_width="wrap_content" android:layout_height="0dp" android:layout_weight="1.0" android:gravity="center" android:text="页卡1" android:textColor="#000000"/></LinearLayout>layout2.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#E066FF" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="1.0" android:gravity="center" android:text="页卡2" android:textColor="#000000"/></LinearLayout>
ViewPagerDemo.java
package com.example.viewpagerdemo;import java.util.ArrayList;import android.app.Activity;import android.content.Context;import android.os.Bundle;import android.support.v4.view.PagerAdapter;import android.support.v4.view.ViewPager;import android.support.v4.view.ViewPager.OnPageChangeListener;import android.util.Log;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.ViewGroup;public class MainActivity extends Activity {ViewPager mViewPager;View view1, view2, view3;ArrayList<View> viewList;MyAdapter myAdapter;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mViewPager = (ViewPager) findViewById(R.id.mViewPager);// forview1 = View.inflate(this, R.layout.layout1, null);view2 = View.inflate(this, R.layout.layout2, null);view3 = View.inflate(this, R.layout.layout3, null);viewList = new ArrayList<View>();viewList.add(view1);viewList.add(view2);viewList.add(view3);// adaptermyAdapter = new MyAdapter(this, viewList);// adaptermViewPager.setAdapter(myAdapter);/** * 页面滚动监听 */mViewPager.setOnPageChangeListener(new OnPageChangeListener() {/** * 当前页面的索引位置--注意是滑动完毕后,并且定位到界面 */@Overridepublic void onPageSelected(int position) {// Log.d("TAG", "onPageSelected:"+position);}/** * arg0 :当前页面,及你点击滑动的页面 * * arg1:当前页面偏移的百分比--默认是0.0 * * arg2:当前页面偏移的像素位置 默认是0 * * 手指向左滑动,都是递增的,是下一张页面的屏幕百分比,以及屏幕像素尺寸 * 手势想右滑动,都是递减的,是当前页面的屏幕百分比,已经屏幕尺寸 */@Overridepublic void onPageScrolled(int arg0, float arg1, int arg2) {// TODO Auto-generated method stubLog.e("TAG", "onPageScrolled:" + arg0 + ",arg1:" + arg1+ ",arg2:" + arg2);}/** * arg0 ==1的时辰默示正在滑动,arg0==2的时辰默示滑动完毕了,arg0==0的时辰默示什么都没做。 * 如果界面定位到第一张,和最后一张,手指向右滑动(最后一张手指向左滑动),则打印10 10 * 10--意思就是正在滑动,然后初始化什么都没做 如果直接常规从1-2 2-1 2-3 3-2 则打印120 * --正在滑动,滑动完毕,初始化什么都没做 */@Overridepublic void onPageScrollStateChanged(int arg0) {// TODO Auto-generated method stub// Log.w("TAG", "onPageScrollStateChanged:"+arg0);}});}class MyAdapter extends PagerAdapter {private ArrayList<View> viewList;private Context mContext;MyAdapter(Context mContext, ArrayList<View> viewList) {this.mContext = mContext;this.viewList = viewList;}@Overridepublic int getCount() {return viewList.size();}@Overridepublic boolean isViewFromObject(View arg0, Object arg1) {// TODO Auto-generated method stubreturn arg0 == arg1;}/** * 每次都缓存当前界面的相邻2张,其他的界面销毁掉, 如果定位到第一张,则缓存第2张,其他的销毁调 * 如果定位到第末张,则缓存倒数第2张,其他的销毁调 */@Overridepublic void destroyItem(ViewGroup container, int position, Object object) {// TODO Auto-generated method stub// Log.i("TAG", "destroyItem position--"+position);container.removeView(viewList.get(position));}@Overridepublic Object instantiateItem(ViewGroup container, int position) {// TODO Auto-generated method stubcontainer.addView(viewList.get(position));// Log.i("TAG", "instantiateItem position--"+position);return viewList.get(position);}}}
1-2-3
3-2-1
0 0
- ViewPager 案例(一)
- ViewPager案例
- android ViewPager使用案例
- ViewPager 案例(二)
- android ViewPager案例
- Android Studio精彩案例(一)《ActionBar和 ViewPager版仿网易新闻客户端》
- ViewPager固定标题的案例
- Android Viewpager界面指示器案例
- 一个案例教你简单地玩转ViewPager(一)之带指示点的引导页
- ViewPager详解 <一> : 基础知识
- ViewPager的使用(一)
- ViewPager 入门一
- Android:ViewPager 随记一
- Fragment+ViewPager(一)
- 王学岗Viewpager(一)
- 学会使用viewPager(一)
- ViewPager的使用<一>
- ViewPager使用(一)
- ANDROID-友盟反馈自定义UI【部分原创】
- Java学习笔记23
- 读书《统计学习方法》
- hadoop实战基础篇(三)
- linux运行的空间
- ViewPager 案例(一)
- 【java编程】Collection工具类之重写BinarySearch方法
- Linux时区和时间
- View Controller 容器
- pat1064 Complete Binary Search Tree
- getHeight和getTop、getBottom等等
- poj 1201 Intervals [差分约束]
- bat+7z+ftp实现windows下的自动备份
- 从修改新生入学系统原型图中浅谈对学习的认识