我正在使用兼容性库中的ViewPager.我已经巧妙地让它显示了几个我可以翻阅的视图.
但是,我很难弄清楚如何使用一组新视图更新ViewPager.
我已经试过各种事情就像调用mAdapter.notifyDataSetChanged(),mViewPager.invalidate()即使每次都创建我想用一个新的数据列表中的一个全新的适配器.
没有任何帮助,文本视图与原始数据保持不变.
更新: 我做了一个小测试项目,我几乎能够更新视图.我将粘贴下面的课程.
然而,似乎没有更新的是第二个视图,"B"仍然存在,按下更新按钮后应显示"Y".
public class ViewPagerBugActivity extends Activity {
    private ViewPager myViewPager;
    private List<String> data;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        data = new ArrayList<String>();
        data.add("A");
        data.add("B");
        data.add("C");
        myViewPager = (ViewPager) findViewById(R.id.my_view_pager);
        myViewPager.setAdapter(new MyViewPagerAdapter(this, data));
        Button updateButton = (Button) findViewById(R.id.update_button);
        updateButton.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                updateViewPager();
            }
        });
    }
    private void updateViewPager() {
        data.clear();
        data.add("X");
        data.add("Y");
        data.add("Z");
        myViewPager.getAdapter().notifyDataSetChanged();
    }
    private class MyViewPagerAdapter extends PagerAdapter {
        private …我在FragmentPagerAdapter中有大约20个片段,它们包含一个列表,它从中拾取片段,因此不会重新创建片段.
private List<TitledFragment> fragments;
public SectionsPagerAdapter(FragmentManager fm) {
    super(fm);
    this.fragments = new ArrayList<TitledFragment>();
}
@Override
public Fragment getItem(int i) {
    return fragments.get(i).getFragment();
}
@Override
public int getCount() {
    return fragments.size();
}
@Override
public CharSequence getPageTitle(int position) {
   return fragments.get(position).getTitle();
}
public synchronized List<TitledFragment> getFragments() {
    return fragments;
}
public synchronized void addFragment(TitledFragment fragment) {
    fragments.add(fragment);
    notifyDataSetChanged();
}
FragmentPagerAdapter被设置为ViewPager的适配器,之后我重新排序片段(洗牌仅用于测试)
Collections.shuffle(mSectionsPagerAdapter.getFragments());
mSectionsPagerAdapter.notifyDataSetChanged();
由于某种原因,只有标题的顺序被改变,即使它为getItem返回不同的片段,因为顺序是不同的.为什么这样,我怎么能绕过它呢?
java android android-fragments android-viewpager fragmentpageradapter