Articles of android viewpager

带有Recyclerview的ViewPager上的NullPointerException

我们的应用程序上有一个带有FragmentPagerAdapter的ViewPager ,它包含三个片段。 其中两个片段由每个片段的Recyclerview组成。 第一页(没有ViewPager的片段)正确显示。 但是,当ViewPager尝试预加载下一页(RecyclerView)时,应用程序崩溃是因为NullPointerException具有以下日志: java.lang.NullPointerException: Attempt to invoke virtual method ‘boolean android.support.v7.widget.RecyclerView$ViewHolder.shouldIgnore()’ on a null object reference at android.support.v7.widget.RecyclerView.findMinMaxChildLayoutPositions(RecyclerView.java:2839) at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:2626) at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3011) at android.view.View.layout(View.java:15684) at android.view.ViewGroup.layout(ViewGroup.java:4981) at android.support.v4.view.ViewPager.onLayout(ViewPager.java:1626) at android.view.View.layout(View.java:15684) at android.view.ViewGroup.layout(ViewGroup.java:4981) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:573) at android.widget.FrameLayout.onLayout(FrameLayout.java:508) at android.view.View.layout(View.java:15684) at android.view.ViewGroup.layout(ViewGroup.java:4981) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557) at android.widget.LinearLayout.onLayout(LinearLayout.java:1466) at android.view.View.layout(View.java:15684) at android.view.ViewGroup.layout(ViewGroup.java:4981) at android.support.design.widget.CoordinatorLayout.layoutChild(CoordinatorLayout.java:1000) at […]

在Android 2.2 + ViewPager和Fragments中实现TabHost使用的教程

像我这样的人的简短教程,他们在find实现TabHost和ViewPager的方法时遇到了一些麻烦,包括用手指翻页和选项卡点击来更改页面。 显示的解决方案与Android 2.2版本兼容。 它包括选项卡初始化,与选项卡连接的ViewPager和页面滚动管理。 它的主要特点是优化早期版本的Android(FROYO,API版本8,Android 2.2)以及用于不同目的的简单实现。 我希望它会有用。

Android webview:阻止将触摸手势传递给父viewpager

我有一个包含许多子视图的viewpager; 每个子视图都是一个webview。 每个webview都有一些用户可以与之交互的HTML对象; 例如,可以在滑动手势或可拖动的圆圈上工作的幻灯片,用户可以在HTMLcanvas上移动。 问题是当用户对这些HTML对象执行手势时,viewpager会滚动到下一个视图。 我希望HTML对象在用户与它们交互时工作(viewpager不滚动),以及当用户在其他地方滑动时滚动的viewpager。 我怎样才能做到这一点? PS我在HTML幻灯片的JavaScript中使用了event.preventDefault()和event.stopPropagation() ,希望webview不会将触摸事件传递给父viewpager。

从Fragment内部获取父ViewPager视图

我试图从片段内部访问父viewpager,但我不知道如何做到这一点。 我需要在片段内的onClick事件之后切换ViewPager上的currentItem。 有任何想法吗? 编辑: 我想访问父视图(ViewPager View),以便我可以从我的一个片段中更改可见的currentItem。

将图标添加到SlidingTabLayout而不是Text

我正在我的Android应用程序中实现SlidingTabLayout。 我的疑问是,我想在我的滑动标签中实现图标而不是导航文本。 我在互联网上搜索任何这样的教程或样本,但没有find。 我还在stackoverflow上搜索了上一个问题: Over Here – SlidingTabLayout with Icons 。 它提供了一些信息,但并没有真正帮助我。 要清楚。 我要求我的标签只包含图标 。 没有文字。 由于我是这个整个设置的新手,如果您发布正确的代码并附上解释,我将不胜感激。 感谢您的时间和精力! PS 我也听说过Andreaz Stuetz的pagerslidingtabstrip,并想知道这是否更适合我想要的东西…… 另外:这是我希望我的滑动标签看起来像。 查看此图片的顶部。 编辑:现在LOLLIPOP(与材料设计)已经出来。 我已经看到很多应用程序使用一个新的“仅图标” SLIDING-TAB-LAYOUT低于他们的工具栏(ANDROID 5.0 ACTION-BAR)。 这是他们实施这个问题的新方法吗? 再次感谢!

RecyclerView项目没有变化

我在一个片段中有一个RecyclerView ,它在TabLayout中重复出现。 我在RecyclerView中遇到了视图不变的问题。 我在每个标签上都有一个微调器。 我想在选择微调器项时更改数据。 我的案子: 在标签之间切换时 – 项目已更改 在第一个选项卡中在微调器中选择另一个值时 – 项目未更改 。 (但是数据在适配器类中发生了变化。首先,它在选择期间不为null然后为null。但是第一个没有空的数据没有出现,它被替换为null。使用断点find它)。 注意:在这种情况下,切换选项卡时,项目将更改为上一个选项卡中的微调器选定项目。 然后它消失并在选项卡中显示当前项目。 在最后一个选项卡中在微调器中选择另一个值时 – 项目已更改 。 我的视图寻呼机适配器类 public class StudentViewPagerAdapter extends FragmentStatePagerAdapter { private final List mFragmentList = new ArrayList(); private final List mFragmentTitleList = new ArrayList(); public StudentViewPagerAdapter(FragmentManager fm) { super(fm); } public void addFragment(StudentList fragment,Clazz clazz){ mFragmentList.add(fragment); mFragmentTitleList.add(clazz); } […]

查看寻呼机+ ImageView + Pinch缩放+旋转

我想在Imageview上实现Pinch Zoom,在View Pager中类似于Default Android Gallery。 我在GitHub上find了多个源,但缩放和滑动仅适用于第一张图像。 我试过的: 1.) TouchImageView 2.) PhotoView 3.) Android Touch Gallery 所有上述链接适用于单个图像视图。 但是当谈到Images in View寻呼机时,它们有一些故障,只适用于View Pager中的第一张图像。 当我们在视图寻呼机中滚动到第3个第4个图像时,如果图像被缩放,拖动function将无法按预期工作。 如果有人知道任何一个好的图书馆,请为我们提供链接。

CoordinatorLayout状态栏填充从ViewPager第2页消失

编辑2016年2月1日:应该通过应用Android团队提供的代码解决错误: https : //stackoverflow.com/a/35132144/3397345 2016年2月27日编辑:在v23.1.1中仍未解决错误。 到目前为止提供的解决方案不提供透明状态栏(这是此布局的目的)或太复杂。 这里有一个新的错误屏幕记录: https : //www.youtube.com/watch?v = 76IxhlUx8MQ 编辑2015年7月23日:支持设计库v22.2.1没有修复:-(这也发生在工具栏上快速返回MainActivity! 编辑2015年7月28日:链接的问题: 在片段交易期间,CoordinatorLayout状态栏填充消失 从示例存储库https://github.com/chrisbanes/cheesesquare我已经在Detail Activity上实现了ViewPager。 它有效,但StatusBar从第2页消失,如图所示只在Lollipop设备中 ,任何想法? 我使用android:fitsSystemWindows=”true”但它确实只在第一页上工作:-( activity_detail_viewpager.xml如果我把这里放在fitsSystemWindows,StatusBar不再透明,但它可以工作(状态栏填充不会丢失)。 但我希望它透明! activity_detail_fragment.xml … … style.xml v21 true @android:color/transparent

碎片未从内存中释放

我有一个活动,其中包含一个具有适配器FragmentStatePagerAdapter的View Pager。 每次进入活动时,它将占用200mb的内存,在退回活动后(finish())然后重新输入它将附加并加倍手机上使用的内存。 在对问题进行故障排除后,似乎片段管理器没有释放片段,尽管我试图删除它们但它只是不起作用。 我尝试清空正在添加的片段以确保它不是片段内部的问题仍然存在。 我的适配器代码是 private class ChildrenPagerAdapter extends FragmentStatePagerAdapter { private List childrenBean; public ChildrenPagerAdapter(FragmentManager fm, List bean) { super(fm); this.childrenBean = bean; } @Override public int getItemPosition(Object object) { return PagerAdapter.POSITION_NONE; } @Override public Fragment getItem(int position) { ReportFragment reportFragment = new ReportFragment(); reportFragment.childBean = childrenBean.get(position); reportFragment.position = position; reportFragment.mPager = mPager; […]

如何告诉我的自定义FragmentPagerAdapter停止销毁我的碎片?

我有一个带有FragmentPagerAdapter的ViewPager,我的应用程序之前只使用了两个片段(不同types)而没有问题。 我刚刚添加了第三个片段,现在我的适配器/ viewpager似乎在我远离它们时会破坏我的碎片。 例如,如果我在第1页,第3页将被销毁并在我接近它时重新创建。 如果我在第3页,第1页也是如此。 这在我的应用中引起了很多问题。 片段根本不是RAM很重,所以我怎么能阻止这种情况发生呢?