解释我的问题:
我花了很多时间,但我不能让这个工作。我有视图寻呼机在主要活动中包含三个片段使用(Tabhost)。我的ViewPagerAdapter类扩展FragmentStatePagerAdapter
。
我遇到的问题是,当我滑动视图时,我的OnResume()
方法没有被调用。我想在滑动时更新viewpager片段的视图。
我的OnResume()
方法只在我单击ListView
项并再次返回时被调用。但是当我在ListView上按OnLongClick时,其他片段不会被刷新。
注:我知道这个问题以前有人问过,但这些解决方案都没有帮助我。
**注2:**当我的手机进入睡眠状态,然后解锁手机后,第二个片段调用onResume()
第一个选项卡中的我的OnResume()
方法:
@Override
public void onResume() {
super.onResume();
adapterLogin.notifyDataSetChanged();
}
第二个选项卡中的OnResume()
方法:
@Override
public void onResume() {
super.onResume();
adapterLogin.UpdateView(databaseHelper.getAllVoitureFavourite(1,username));
adapterLogin.notifyDataSetInvalidated();
adapterLogin.notifyDataSetChanged();
}
BaseAdapter
中的UpdateView()
方法:
public void UpdateView(List<Voiture> items) {
this.voitureList = items;
notifyDataSetInvalidated();
notifyDataSetChanged();
}
我的应用程序的屏幕截图,以了解更多的mu问题:
任何帮助都将不胜感激。
4条答案
按热度按时间gijlo24d1#
您描述的行为就是ViewPager的工作方式,没有任何问题。
此外,如果您检查ViewPager类的源代码,您会注意到offscreenPageLimit的最小值为1。将其设置为0并不起任何作用,因为它福尔斯默认值1。
您可以做的是添加一个TabHost.OnTabChangeListener,以便在每次滑动时都调用相应的方法。
7hiiyaii2#
如果你设置屏幕外页面限制= 0,那么这个在swipe onviewcreate或onviewcreated方法也会一次又一次地调用,这可能会干扰你的应用程序的流程。我使用的最佳方法是在你的片段中使用接口方法覆盖,并在页面更改时调用这个覆盖方法,这将对你很好地工作
cngwdvgl3#
如果ViewPager只有2个页面,则在滑动期间两个片段都不会暂停,并且永远不会调用onResume()。
我相信默认情况下它总是保留邻居页面,这意味着它的页面限制为1。
您可以尝试将其保留的页数设置为0。
ccrfmcuu4#
使用设置用户可见提示(布尔值为“对用户可见”)。