Articles of android pageradapter

使用PagerAdapter的IllegalStateException

我在此活动中收到IllegalStateException,但不太确定发生了什么。 这是QuickContactActivity中的ViewPagerAdapter类。 private class ViewPagerAdapter extends FragmentPagerAdapter { public ViewPagerAdapter(FragmentManager fragmentManager) { super(fragmentManager); } @Override public Fragment getItem(int position) { QuickContactListFragment fragment = new QuickContactListFragment(); final String mimeType = mSortedActionMimeTypes.get(position); final List actions = mActions.get(mimeType); fragment.setActions(actions); return fragment; } @Override public int getCount() { return mSortedActionMimeTypes.size(); } } 这是崩溃日志: 07-15 09:49:21.060: E/com.##.##.##.Application(12378): Thread uncaught exception: […]

ViewPager – 并不总是调用onCreateView

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

为什么在PagerAdapter中多次调用getCount?

我今天注意到PagerAdapter被调用了很多次。 当慢慢滚动页面时,我计算了393。 我看到了这个问题,但它并没有给我一个很好的答案。 这是正常的行为吗? 如果是这样,为什么经常调用getCount方法呢? 为了清楚起见,我正在寻找一个比所提问题更广泛的答案。 我也意识到我需要保持它的速度,并且我无法控制它的调用方式,但这不是问题。

不推荐使用PagerAdapter.instantiateItem()方法

我很好奇为什么instantiateItem被弃用以支持它的新版本。 变化是它现在接收ViewGroup而不是更一般的View 。 不推荐的方法 public Object instantiateItem (View container, int position) 新方法 public Object instantiateItem (ViewGroup container, int position) 注意:此更改也发生在destroyItem , startUpdate , finishUpdate和setPrimaryItem 。

关于PagerAdapter的方法instantiateItem(ViewGroup容器,int位置)的一些混淆

public Object instantiateItem(ViewGroup container, int position) { ImageView view = new ImageView(); container.addView(view); return view; } 我读了一些PagerAdapter的示例代码,他们都编写了addview方法。 以上是一些简单的代码,而且我知道’return view’用于返回显示的视图,但是container.addView(view)是什么做的?

当使用PagerAdapter的getPageWidth时,Android ViewPager滚动问题只有一个项目

我有一个带有自定义PagerAdapter的ViewPager,它会覆盖方法getPageWidth返回0.3f,因此我可以在屏幕上显示多个页面,如以下博客中所示: http://commonsware.com/blog/2012/08/20/multiple-view-viewpager-options.html 在这种情况下,ViewPager开始为空,用户开始按要求填充页面(图像)。 图像从左到右填充。 一切正常,页面是动态创建的,当有多个图像时,很容易在它们之间滑动。 但是,实例化的页面少于三页时会出现问题。 从右侧(无内容)到左侧的轻扫手势会产生闪烁,页面从左向右交替移动,就像ViewPager试图将第一页向右移动但稍后转向其原始位置一样。 这在整个手势期间发生,并在离开手势时停止。 正如我所说,当有足够的页面覆盖整个屏幕宽度并且需要真正的滚动时,这不会发生。 有任何想法吗?

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); […]