ViewPager

整理保存: 

简单的实现:

/**

 * 滑动

 * @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"/>

时间: 2024-09-08 12:59:27

ViewPager的相关文章

安卓viewpager加载问题

问题描述 安卓viewpager加载问题 在viewpager实现底部选项的时候,我首先进入的是首页,然后我直接点几最后一个个人中心的按钮,但是点进去的时候,他首先会想加载第二个和第三个的里面的数据,我想问下,怎么才能在点几最后一个按钮的时候,不加载第二个和第三个里面的东西,只有点击第几个就记载第几个里面的东西,这个怎么实现? 解决方案 首先先让我吐槽一下错别字,点几,还一错就错两个,是点击呀.你这个其实不应该使用viewPager而是直接使用四个fragment就行了,然后使用Fragment

viewpager循环滚动和自动轮播的问题

ViewPager是一个常用的android组件,不过通常我们使用ViewPager的时候不能实现左右无限循环滑动,在滑到边界的时候会看到一个不能翻页的动画,可能影响用户体验.此外,某些区域性的ViewPager(例如展示广告或者公告之类的ViewPager),可能需要自动轮播的效果,即用户在不用滑动的情况下就能够看到其他页面的信息. 为此我查阅了网络上现有的一些关于实现这样效果的例子,但都不是很满意,经过反复实验,在这里总结并分享给大家,希望能有所帮助. 循环滑动效果的实现:PagerAdap

ViewPager在ScrollView中无法正常滑动的问题

来源: 能够兼容ViewPager的ScrollView http://justwyy.iteye.com/blog/1567390 ScrollView中嵌入ViewPager,ViewPager的滑动出现问题  http://bbs.csdn.net/topics/390213480 在网上找到两种方法,都是自定义scrollview,大家可以试试. 方法一: public class CustomScrollView extends ScrollView { private boolean

使用ViewPager+Fragment来实现带滚动条的多屏滑动-IndicatorFragmentActivity

转载请注明出处:http://blog.csdn.net/singwhatiwanna/article/details/17201587 介绍 在android应用中,多屏滑动是一种很常见的风格,博主之前也写过一些多屏滑动的demo,比如滚动banner(http://blog.csdn.net/singwhatiwanna/article/details/8875241)和仿tabhost的控件.这次给大家介绍一种效果更好的风格:带滚动条的多屏滑动,类似于google play里面的风格.如果

多个ViewPager引发的Fragment未初始化

本文主要介绍ViewPager FragmentPagerAdapter中Fragment缓存的规则. 可能需要在一个Activity中显示多个ViewPager,如GridView或ListView中以ViewPager做Item. 在Fragment的onCreateView函数中添加断点,结果发现只有第一个ViewPager的Fragment被初始化了. 排查发现在FragmentPagerAdapter中的instantiateItem函数中FragmentManager以contain

viewpager-android ViewPager.isActivated()方法

问题描述 android ViewPager.isActivated()方法 这个方法应该是安卓4.0以上才出现的,但是我在2.X上面怎么实现这个方法呢?:我在这里调用该方法的目的是判断该ViewPager是否被激活. 解决方案 Android ViewPager使用方法Android ViewPager使用方法Android Tab切换Viewpager+FragmentPageAdapter方法 解决方案二: 那就是说在2.x上没法用呗,就不用了呗

scrollview嵌套viewpager viewpager无法自适应高度

问题描述 scrollview嵌套viewpager viewpager无法自适应高度 scrollview嵌套viewpager (左右滑动的) viewpager自适应高度失效了...怎么解决scrollview里面viewpager的高度自适应问题 解决方案 http://zhidao.baidu.com/link?url=5sxU0_7Rb4XpM5JGVwDqdYSEJejz4g2nj87mEVWwhouykmcNfzI98alGeaTi6UB2RR5wL-LRZYgBMMQZXnyB

Android UI设计与开发教程 引导界面(一)ViewPager介绍和使用详解

做Android开发加起来差不多也有一年多的时间了,总是想写点自己在开发中的心得体会与大家一起交流分 享.共同进步,刚开始写也不知该如何下手,仔细想了一下,既然是刚开始写,那就从一个软件给人最直观的 感受--UI设计开始写起吧,循序渐进,娓娓道来.博主在这里和大家一起学习,希望能多多支持,话不多说 ,下面就开始讲解UI设计的第一篇. 在讲解如何实现引导界面的效果之前,我想先详细介绍一下 ViewPager类的使用和说明,因为这是开发引导界面最重要的类,没有之一. 一.ViewPager实现的效

viewpager里面放listview,重写onmeassure之后不能滑动

问题描述 viewpager里面放listview,重写onmeassure之后不能滑动 viewpager里面放了一个listview之后,吧listview的onMeasure方法重写了下,如下 @Override public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, M

listview-android ViewPager 传递信息用什么方式好

问题描述 android ViewPager 传递信息用什么方式好 比如我在ViewPager第一页里面写了个日记,第二页是一个Listview,显示的是历史日记的一些信息(标题与时间等),在写完日记保存后,用什么方式去通知第二页的adapter调用notifyDataSetChanged()方法来刷新ListView显示的数据比较好? 解决方案 用intent传递数据阿 解决方案二: fragment之间是可以传递数据的.也可以自己写接口传递. 解决方案三: 你的问题有问题啊,在当前页面只需要