Articles of android pageradapter

FragmentPagerAdapter – 当用户转到新标签时如何检测滑动或标签点击?

我有一个MainActivity ,在FragmentPagerAdapter中有三个片段,如下所示。 如何通过滑动或单击选项卡,如何找出用户从第一个片段到第二个片段或从第二个片段到第二个片段的时间? 我看到getItem()方法不会被调用,因为我已经声明了mViewPager.setOffscreenPageLimit(2) ; public class MainThreeTabAdapter extends FragmentPagerAdapter { private final String[] CONTENT = new String[]{“News”, “Rewards”, “Me”}; public MainThreeTabAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { if (position == 0) { return NewsFragment.newInstance(); } else if (position == 1) { return RewardsFragment.newInstance(); } else if (position == 2) { […]

PagerAdapter.notifyDataSetChanged不刷新片段

我的Activity包含一个ViewPager和它的自定义Adapter ,它扩展了FragmentStatePagerAdapter 。 ViewPager包含3个片段 用于从ViewPager中删除片段的代码 MainActivity public void deleteElement(){ final int currentItem = mViewPager.getCurrentItem(); mPagerAdapter.removeItem(currentItem); mPagerAdapter.notifyDataSetChanged(); } CustomPagerAdapter private ArrayList data; public void removeItem(int index){ data.remove(index); } 删除中间Fragment (索引1)时: 从data我删除正确的item 。 问题是我(我猜) Fragment 3在notifyDataSetChanged之后被删除,并且当前Fragment仍然是用户看到的片段,并且正在加载的数据来自SavedInstance包 因此,最终结果是用户仍然看到他试图移除的相同Fragment ,这对他来说有点不好意思。 想法?

ViewPager没有显示任何内容

我用自定义视图寻呼机适配器创建视图寻呼机但是当我运行项目时我看不到任何东西 public class CustomAdapter extends PagerAdapter { private List newsObjects; private Activity mActivity; private LayoutInflater inflater; private ImageLoaderConfiguration imageConfig; private ImageLoader imageLoader = ImageLoader.getInstance(); public CustomAdapter(List newsObjects, Activity mActivity) { super(); Log.d(“Con :”, “structor”); this.newsObjects = newsObjects; this.mActivity = mActivity; imageConfig = new ImageLoaderConfiguration.Builder( mActivity.getApplicationContext()).build(); imageLoader.init(imageConfig); } @Override public int getCount() { return this.newsObjects.size(); } […]

ViewPager PagerObserver未注册

当我关闭屏幕并重新打开时,我的应用程序关闭。 Logcat告诉我,这个错误的原因是指向我的CourseFragment.class中的java line 60,它扩展了Fragment。 mViewPager.setAdapter(infoTechPageAdapter); 我在CourseFragment.class中实现了一个ViewPager,它扩展了Fragment。 这是我的代码: public class CourseFragment extends Fragment { public static final String ARG_POSITION_NUMBER = “course_number”; private int position; public CourseFragment() { // Empty constructor required for fragment subclasses } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView; position = getArguments().getInt(“position”); String course = getResources().getStringArray( R.array.array_navigation_drawer)[position]; getActivity().setTitle(course); […]

Android:FragmentPagerAdapter:第一次调用两次getItem方法

在我的应用程序中,我使用了ViewPager。 喜欢, (say main.xml) 并在FragmentActivity中创建ViewPager对象和ViewPagerAdapter(它扩展了FragmentPagerAdapter)对象。 _mViewPager = (ViewPager) findViewById(R.id.viewPager); _adapter = new ViewPagerAdapter(getApplicationContext(), getSupportFragmentManager()); _mViewPager.setAdapter(_adapter); 而Adapter类就像, public class ViewPagerAdapter extends FragmentPagerAdapter { private Context _context; private FragmentManager manager; private Fragment f; private String classname=”ViewPagerAdapter”; public ViewPagerAdapter(Context context, FragmentManager fm) { super(fm); _context=context; manager=fm; } @Override public Fragment getItem(int position) { Log.i(classname,”getItem called”+position); f = new […]

更改屏幕方向后,从ViewPager的适配器中销毁项目

所以我在屏幕方向改变后从ViewPager销毁(删除)一个页面时遇到问题。 我将尝试在以下几行中描述问题。 我正在使用FragmentStatePagerAdapter作为ViewPager的适配器和一个小接口,它描述了无限视图寻呼机应该如何工作。 它背后的想法是你可以滚动到右边,直到你到达ViewPager 。 如果您可以从API调用加载更多结果,则会显示进度页面,直到结果出现。 一切都很好,直到这里,现在问题来了。 如果在这个加载过程中,我旋转屏幕(这不会影响API调用,这基本上是一个AsyncTask ),当调用返回时,应用程序崩溃给我这个exception: E/AndroidRuntime(13471): java.lang.IllegalStateException: Fragment ProgressFragment{42b08548} is not currently in the FragmentManager E/AndroidRuntime(13471): at android.support.v4.app.FragmentManagerImpl.saveFragmentInstanceState(FragmentManager.java:573) E/AndroidRuntime(13471): at android.support.v4.app.FragmentStatePagerAdapter.destroyItem(FragmentStatePagerAdapter.java:136) E/AndroidRuntime(13471): at mypackage.OutterFragment$PagedSingleDataAdapter.destroyItem(OutterFragment.java:609) 在库的代码中挖掘了一下之后,在这种情况下,片段的mIndex数据字段似乎小于0 ,这就引发了exception。 以下是寻呼机适配器的代码: static class PagedSingleDataAdapter extends FragmentStatePagerAdapter implements IEndlessPagerAdapter { private WeakReference fragment; private List data; private SparseArray<WeakReference> currentFragments = new SparseArray<WeakReference>(); private ProgressFragment progressElement; private […]

ViewPager – 并不总是调用onCreateView

我有一个10页的ViewPager。 当我启动最后(第10)页onCreateView()我的片段的方法被调用。 当我滑动到第9页onCreateView()也被调用。 但是当我回到第十页onCreateView()没有被调用。 怎么了?

PagerAdapter类被多次调用

我正在创build一个ViewPager视图的应用程序,我创build了一个PagerAdapter,它具有视图,PagerAdapter的instantiateItem()方法在create()中被调用两次,我不知道为什么,任何人都可以帮助我这个? 这是我的代码, View PagerView; MyPagerAdapter adapter; ViewPager pager; adapter = new MyPagerAdapter(); pager.setAdapter(adapter); pager.setCurrentItem(0); public class MyPagerAdapter extends PagerAdapter { @Override public Object instantiateItem(final View collection, final int position) { Log.d("Inside", "Pager"); PagerView = new View(collection.getContext()); LayoutInflater inflater = (LayoutInflater) collection.getContext() .getSystemService(Context.LAYOUT_INFLATER_SERVICE); PagerView = inflater.inflate(R.layout.tablemenu, null, false); tbMenuDetails = (TableLayout) PagerView .findViewById(R.id.Menutable1); scrollview = (ScrollView) […]

如何将数据提供给PagerAdapter

我正在使用这个例子来使用ViewPager和PagerAdapter 。 但是,我怎么能提供来自像CursorAdapter这样的适配器的数据的PagerAdapter ,我使用CursorLoader加载数据? .setAdapter()上的.setAdapter()只需要一个PagerAdapter 。 然后我想我需要在PagerAdapter绑定CursorAdapter ,但是我找不到这样做的方法。

FragmentPagerAdapter与OffPreenLimit设置为1的ViewPager和FragmentStatePagerAdapter之间的区别?

FragmentPagerAdapter与ViewPager与OffScreenLimit设置为1和FragmentStatePagerAdapter什么区别? 关于FragmentPagerAdapter Google的指南说: 这个版本的寻呼机最适合用于有less量通常需要寻呼的静态片段,比如一组选项卡。 用户访问的每个页面的片段将保存在内存中,尽pipe其视图层次可能在不可见时被破坏。 这可能会导致使用大量的内存,因为片段实例可以保持任意数量的状态。 对于更大的页面集,请考虑FragmentStatePagerAdapter。 而关于FragmentStatePagerAdapter : 当有大量的页面时,这个版本的寻呼机更加有用,更像是一个列表视图。 当页面对用户不可见时,它们的整个片段可能被破坏,只保留该片段的保存状态。 与FragmentPagerAdapter相比,这允许寻呼机保持与每个访问页面相关联的更less的存储器,代价是在页面之间切换时可能会有更多的开销。 我想如果我将offscreenlimit设置为1,它会销毁当前片段的下两个片段之外的所有片段,它的行为类似于FragmentStatePagerAdapter。 它是否正确?