我创建了一个简单的应用程序,其中包含3个选项卡TAB1,TAB2,TAB3 当我选择TAB1相邻的TAB2后加载到内存中之后,当我按下TAB2或TAB3时,我的TAB2上的内容将无法刷新。
如果我点击TAB1-> TAB2-> TAB1-> TAB2序列中的tab,我的片段将不会刷新
每次选择标签时,我都要加载选定的标签。
我使用以下代码在选定的标签上加载片段
#sidebar-wrapper {
margin-left: -320px;
position: absolute;
overflow-y: visible;
overflow-x: hidden;
top: 60px;
bottom: 10px;
transition: all 0.4s ease 0s;
}
.dropdown-menu-right {
right: -272px;
left: auto;
top: -200px;
}
答案 0 :(得分:2)
Your_Pager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
if (position == WHATEVER) {
//do your Staff
}
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
您可以访问此处获取更多信息
http://developer.android.com/reference/android/support/v4/view/ViewPager.OnPageChangeListener.html
答案 1 :(得分:1)
FragmentPagerAdapter: FragmentPagerAdapter将整个片段存储在内存中,如果在ViewPager中使用了大量片段,则会增加内存开销。
FragmentStatePagerAdapter: FragmentStatePagerAdapter仅存储片段的savedInstanceState,并在失去焦点时销毁所有片段。因此,当我们必须使用动态片段(如具有小部件的片段)时,应使用FragmentStatePagerAdapter,因为它们的数据可以存储在savedInstanceState中
使用案例: 当我们需要将整个片段存储在内存中时,应该使用FragmentPagerAdapter。当我说整个片段保存在内存中意味着,它的实例不会被破坏并且会产生内存开销。因此,建议仅在ViewPager的片段数较少时才使用FragmentPagerAdapter。如果碎片是静态的,那将会更好,因为它们不会有大量的实例存储的对象。
如果您使用Listview,recyclerview或任何繁重的工作,您应该使用'FragmentStatePagerAdapter'其他明智的'FragmentPagerAdapter'