博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ViewPager
阅读量:6910 次
发布时间:2019-06-27

本文共 3237 字,大约阅读时间需要 10 分钟。

整理保存: 
简单的实现:
/**
 * 滑动
 * @author Administrator
 *
 */
private class MyPagerAdapter extends PagerAdapter{
@Override
public int getCount() {
Log.i(TAG, "getCount");
return _listview.size();
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
Log.i(TAG, "isViewFromObject");
return arg0==arg1;
}
@Override
public Object instantiateItem(View container, int position) {
Log.i(TAG, "instantiateItem");
((ViewPager)container).addView(_listview.get(position));
return _listview.get(position);
}
@Override
public Parcelable saveState() {
Log.i(TAG, "saveState");
// return super.saveState();
return null;
}
@Override
public void startUpdate(View container) {
Log.i(TAG, "startUpdate");
}
@Override
public void restoreState(Parcelable state, ClassLoader loader) {
Log.i(TAG, "restoreState");
// super.restoreState(state, loader);
}
@Override
public void finishUpdate(View container) {
Log.i(TAG, "finishUpdate");
}
@Override
public void destroyItem(View container, int position, Object object) {
Log.i(TAG, "destroyItem");
((ViewPager)container).removeView(_listview.get(position));
}
}
//主方法
public class MainUiActivity extends Activity{
private String TAG="MainUiActivity";
private LayoutInflater _inflater;//加载器
private ViewPager viewpager;//控件
private View _firstView,_secondView,_thirdView;
private List<View> _listview;
private MyPagerAdapter _myPagerAdapter;
       
void init(){
_myPagerAdapter=new MyPagerAdapter();
viewpager=(ViewPager) findViewById(R.id.viewpager_layout);
viewpager.setAdapter(_myPagerAdapter);
_listview=new ArrayList<View>();
_inflater=getLayoutInflater();
_firstView=_inflater.inflate(R.layout.viewpager_one,null);
_secondView=_inflater.inflate(R.layout.viewpager_two,null);
_thirdView=_inflater.inflate(R.layout.viewpager_three, null);
}
 
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main_ui);
init();
_listview.add(_firstView);
_listview.add(_secondView);
_listview.add(_thirdView);
//初始化当前显示的View
viewpager.setCurrentItem(0);
viewpager.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int position) {
//activity从1到2滑动,2被加载后掉用此方法
Log.i(TAG, "onPageSelected"+position);
View v=_listview.get(position);
}
@Override
public void onPageScrolled(int position, float arg1, int arg2) {
//从1到2滑动,在1滑动前调用
Log.i(TAG, "onPageScrolled"+position);
}
@Override
public void onPageScrollStateChanged(int position) {
//状态有三个0空闲,1是增在滑行中,2目标加载完毕
Log.i(TAG, "onPageScrollStateChanged"+position);
                /**
                 * Indicates that the pager is in an idle, settled state. The current page
                 * is fully in view and no animation is in progress.
                 */
 
                //public static final int SCROLL_STATE_IDLE = 0;
 
                /**
                 * Indicates that the pager is currently being dragged by the user
                 */
 
                //public static final int SCROLL_STATE_DRAGGING = 1;
 
                /**
                 * Indicates that the pager is in the process of settling to a final position.
                 */
 
                //public static final int SCROLL_STATE_SETTLING = 2;
}
});
}
 
配置文件:
  <android.support.v4.view.ViewPager android:layout_height="fill_parent" android:layout_width="fill_parent" android:id="@+id/viewpager_layout"/>

转载于:https://www.cnblogs.com/wuwa/archive/2013/05/16/6191685.html

你可能感兴趣的文章
删除一个链表中的重复元素
查看>>
C# 在多线程环境中,进行安全遍历操作
查看>>
Win7 防护墙设置——Ping命令,Http访问
查看>>
是男人就下100层【第一层】——高仿微信界面(6)
查看>>
day16- re模块(正则表达式 三种查找方法findall search match)
查看>>
CentOS7.x配置bond0
查看>>
vue随记
查看>>
Quick-cocos2d-x3.3 Study (十一)--------- 让物体从屏幕的外边移动到屏幕中指定位置...
查看>>
[转] 数据挖掘中易犯的几大错误
查看>>
select函数用法详解
查看>>
本地jar包添加到maven仓库
查看>>
ROS学习网址【原创】
查看>>
Linux 2440 LCD 控制器【转】
查看>>
Daily Scrum – 1/18
查看>>
Tomcat配置管理员账号
查看>>
centos FTP服务器的架设和配置
查看>>
深度:ARC会导致的内存泄露
查看>>
内存泄漏和内存溢出
查看>>
设计模式——初步学习
查看>>
metabase实施文档
查看>>