需要帮助解决在使用viewpager时更新页面的问题。我使用了一个简单的viewpager和FragmentStatePagerAdapter。我想做的就是访问当前的fragment/view,以便我可以更新一些文本视图。我在论坛上搜索并了解到以下几点:
- 处理此问题的一种方法是在适配器的instantiateItem()回调中设置标记,并通过findViewbyTag检索视图。我无法理解如何实现这一点,而且我也不确定这是否适用于FragmentStatePagerAdapter。
- 我探索了其他在各个论坛中建议的选项,但无法使它们起作用。
我的代码与android http://developer.android.com/training/animation/screen-slide.html 中的代码非常相似。基本组件相同(包括一个带有一些显示组件(包括TextView)的Fragment activity xml、仅包含ViewPager的viewpager xml、一个Fragment类和主FragmentActivity类)。在我的FragmentActivity类中,我已将pageChangelistener添加到我的viewpager中,以便我可以在onPageSelected()期间进行textview更改。
感谢任何帮助。
附上代码以供参考。
Public class myActivity extends FragmentActivity
//Variable declarations
protected void onCreate(Bundle savedInstanceState) {
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) {
doTextViewChnges();//access the text view and update it based on pageSelected
---THIS IS WHERE I AM STUCK IN TRYING TO GET THE TEXTVIEW IN MY CURRENT FRAGMWNT/VIEW-------
}
mPager.setOnPageChangeListener(pageChangelistener);
}
private class ScreenSlidePagerAdapter extends FragmentStatePagerAdapter {
public ScreenSlidePagerAdapter(android.support.v4.app.FragmentManager fm) {
super(fm);
}
@Override
public android.support.v4.app.Fragment getItem(int position) {
return ScreenSlidePageFragment.create(position, <other parameters I want to pass>);
}
@Override
public int getCount() {
return NUM_PAGES;
}
}