`
810364804
  • 浏览: 781978 次
文章分类
社区版块
存档分类
最新评论

ViewPager 获取当前现实的view

 
阅读更多
我使用viewpager做了一个滑动的切换效果,效果还挺不错,具体实现效果网上很多,各位可以去找,不过在实现切换效果之后,因为需求需要,我需要获取当先显示的那个view,这就很让人恶心了。viewpager有setOnPageChangeListener,里面有
@Override

public void onPageSelected(int arg0) {

RingView rv = null;

rv = (RingView) mBoltonHomeViewPager.findViewById(pageIndex)

}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
@Override
public void onPageScrollStateChanged(int arg0) {


}
方法,我已开始是在onPageSelected方法中通过viewpager.getChildAt(arg0)方式,想获取当前显示的view。不过这样,超过3个view以后就会报空指针错误,获取的view就会为空,跟踪发现arg0大于2以后就获取view为空。所以我猜测viewpager里面最多有3个view,超过三个的时候就把旧的回收了。那么当前显示的,除了第一个和最后一个,那么都应该是中间的那个,也就是arg0为1的那个。于是我判断,除了第一个和最后一个,其它的arg0都等于1,发现不报错了,但是获取的view不对。后来通过getChildCount()方法发现,ChildCount有时候是2,有时候是3,这就让我很头疼了。
最后,发现viewpager还有一个方法findViewById,于是我就给每一个view设置一个id,id也就是创建时adapter里面的position,这样通过findViewById(arg0)就获取到了当前现实的view了。
分享到:
评论

相关推荐

    viewpager 获取当前现实的view

    我使用viewpager做了一个滑动的切换效果,效果还挺不错,具体实现效果网上很多,各位可以去找,不过在实现切换效果之后,因为需求需要,我需要获取当先显示的那个view。

    Android中ViewPager获取当前显示的Fragment

    主要介绍了Android中ViewPager获取当前显示的Fragment的两种方法,一种是使用 getSupportFragmentManager().findFragmentByTag()方法,另一种是重写适配器的 setPrimaryItem()方法,有需要的朋友可以参考借鉴,下面...

    用Scroller完成一个简单的ViewPager

    **scrollBy:**以View的当前位置为起点进行移动 ##TouchSlop 系统可以识别出的被认为是滑动的最小距离。如果大于这个距离则是滑动。 ##View.getScrollX() getScrollX()获取到的值是屏幕的最左侧在整个空间中所占...

    详解Android App中ViewPager使用PagerAdapter的方法

    PageAdapter是一个抽象类,直接继承于Object,导入包android.support.v4.view.PagerAdapter即可使用。...这个方法,是获取当前窗体界面数 public abstract boolean isViewFromObject(android.view.V

    ViewPager-Animation:ViewPager切换动画的几种实现

    ViewPager-Animation ViewPager切换动画的几种实现 一、 1、ViewPager.setPageTransformer实现切换动画,...a、需要拿到当前切换的两个View -> 通过Map存储与获取 b、我们一个动画的梯度值 ->通过offset , offsetPixels

    Android ViewPager实现图片轮播效果

    在app中图片的轮播显示可以说是非常常见的实现效果了,其实现原理不过是利用ViewPager,然后利用handler每隔一定的时间将ViewPager的currentItem设置为当前item的position+1即可。先来看看效果图吧:   就是实现...

    viewPager+fragment刷新缓存fragment的方法

    最近在做一个项目,有一个功能是答题翻页。于是需要实现在这一页的时候就缓存下一页。...不过这样就只有滑动到这一页的时候才能用fragmentArrayList.get(position)获取当前页,用这种方法获取下一页的

    ViewPagerFragment滑动切换

    //获取屏幕当前分辨率 displayWidth = currDisplay.getWidth(); displayHeight = currDisplay.getHeight(); one = displayWidth / 4; //设置水平动画平移大小 two = one * 2; three = one * 3; ...

    Android代码-RecyclePagerAdapter

    ViewPager最多构造四个相同类型的页面,但是显示时最多需要当前页面及左右两个 页面,第四个页面就可以存起来复用。Adapter使用一个ArrayList来存放所有 的Holder;再用一个SparseArray来根据viewType存放在 ...

    Android中getActivity()为null的解决办法

    我们经常会使用ViewPager+Fragment进行视图滑动,在某些部分逻辑也许我们需要利用上下文Context(例如基本的Toast),但是由于Fragment只是依附在Activity容器的一个试图,如果需要拿到当前的Activity的上下文...

    android顶部滑动导航

    //如果标题是第3个及大于第3个时 获取当前标题左端的x坐标值 否则 为 0 int x1=checkedId > 1 ? ((RadioButton) radioGroup.getChildAt(checkedId)).getLeft() : 0; //获取第2个标题左端的x坐标值 ...

    Android实现轮播图无限循环效果

    在instantiateItem()方法中,获取当前View的索引时,进行取于操作,传递进来的int position是个非常大的数,对他进行求余数 在destroyItem()方法中,同样 在onPageSelected()监听方法中,对传递进来的索引进行取于 ...

    DiscreteScrollView:可滚动的项列表,以当前元素为中心,并提供易于使用的API,用于炫酷的项动画

    它类似于ViewPager,但是您可以快速轻松地创建布局,在该布局中,与当前选定视图相邻的视图在屏幕上部分或完全可见。 Gradle 将此添加到您的依赖项块中。 compile 'com.yarolegovich:discrete-scrollview:1.5.1' ...

    WorkOverTime:record work overtime 记加班安卓App

    ViewPager的使用:装填了3个圆环控件,每次切换都会重绘当前的圆环,注册页面切换监听器OnPageChangeListener,实现页面下标的改变 底部导航栏界面的设计:由3个button构成,权重相等,利用android:drawableTop属性...

Global site tag (gtag.js) - Google Analytics