8
|
Mr Robot CaseyB · 技术社区 · 9 年前 |
![]() |
1
4
这个
关于您关于如何解决该警告消息的评论,我创建了自己的FragmentPagerAdapter,如下所示:
警告信息现在已经消失了,目前我没有遇到任何缺陷,但我仍在研究中。 |
|
2
2
我在这个问题上花了很多时间。问题是你试图在OnPageChangeListener侦听器中更新viewpager,它将抛出警告
解决方案: 所有数据更改和更新视图都应调用OnPageChangeListener, 例如:片段的onCreateView 我的警告消失了!并且viewpager完全更新 |
|
3
2
这已经很晚了,但我找到了使用FragmentPagerAdapter的最佳方法,尽管它并没有消除警告,但它解决了问题,如果有人能告诉我该警告实际上意味着什么,以及导致该警告的实际原因,这将是我最感兴趣的。 首先是viewpager创建方法中使用的所有片段,如下所示。 public void updateView() { //Update whatever views or data you want to update } 另外,重写在FragmentPagerAdapter中使用的方法setUserVisibleHint,以通知用户是否可以看到片段。 @Override public void setUserVisibleHint(boolean isVisibleToUser) { this.isVisibleToUser = isVisibleToUser; super.setUserVisibleHint(isVisibleToUser); } 最后,在片段中添加以下代码,以在片段可见时更新视图/日期。 @Override public void onStart() { if (isVisibleToUser) updateView(); } 然后在TabFragment或Activity中实现 viewpager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { switch (position) { case 0: { ((Fragment) mFragmentList.get(0)).updateView(); break; } case 1: { ((Fragment) mFragmentList.get(1)).updateView(); break; } } } 这将确保数据的一致性更新,无论您是滑动还是单击选项卡,如果有人发现任何问题或错误,请发表评论,让我知道或随时编辑解决方案 我投票支持上面的解决方案,这给了我应用这个解决方案的方法。谢谢@mikes |
![]() |
4
2
这并不重要。这只是一个警告。
请尝试更改的背景
|
|
5
2
在视图页面中,同时加载相邻选项卡。因此,选项卡1中的操作将不会反映在选项卡2中,因为它已经加载。您应该使用广播接收器来解决此问题。在选项卡1中广播事件并在选项卡2中接收事件 |
![]() |
ppreetikaa Ani · 查看寻呼机加载下一个片段的数据 7 年前 |