我正在使用ViewPager来跨多个页面展示一些文本。我试图在选择新页面时获取当前视图。我需要获取当前视图的原因是因为根据页面编号我要改变一些视图组件(如textview、image)的属性。 我正在使用以下代码实现:
ViewPager mPager = (ViewPager) findViewById(R.id.pager);
mPagerAdapter = new ScreenSlidePagerAdapter(getSupportFragmentManager());
mPager.setAdapter(mPagerAdapter);
View CurrView;
OnPageChangeListener pageChangelistener = new OnPageChangeListener() {
@Override
public void onPageSelected(int pageSelected) {
currView = mPager.getChildAt(mPager.getCurrentItem());
myTextView = (TextView)currView.findViewById(R.id.myTextView);
loadBookmarkSetting(pageSelected);//do some changes in myTextView properties based on the page number }
mPager.setOnPageChangeListener(pageChangelistener);
现在我面临的问题是,当我滚动三页后到第四页时,我会在这行代码"myTextView =(TextView) currView.findViewById(R.id.myTextView);"上得到NullPointerException。这是因为currView为空。我是否做错了什么?是否有其他方法可以捕获viewpager中的当前视图(页面),以便我可以根据页码对视图进行更改?
mPager.getChildAt(mPager.getCurrentItem());
为什么它返回 null? - MysticMagicϡFragment.getView()
。 - Eugene Popovich