Nav*_*777 1 android android-fragments fragmentmanager
我正在使用一个FragmentStatePagerAdapter. 将getItem(int position)返回错误的位置。我有5个碎片。这是我更改片段时的位置:
Fragment0 -> Fragment1: position = 2
Fragment1 -> Fragment2: position = 3
Fragment2 -> Fragment3: position = 4
Fragment3 -> Fragment4: getItem is not called!
Fragment4 -> Fragment3: position = 2
Fragment3 -> Fragment2: position = 1
Fragment2 -> Fragment1: position = 0
Fragment1 -> Fragment0: getItem is not called!
Run Code Online (Sandbox Code Playgroud)
这是我的适配器的代码:
import android.content.Context;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;
public class AppFragmentPageAdapter extends FragmentStatePagerAdapter {
final int PAGE_COUNT = 5;
private String tabTitles[] = new String[] { "?????", "?????????", "???????", "??????????", "?????????" };
private Context context;
public AppFragmentPageAdapter(FragmentManager fm, Context context) {
super(fm);
this.context = context;
}
@Override
public int getCount() {
return PAGE_COUNT;
}
@Override
public Fragment getItem(int position) {
switch (position) {
case (0):
return NewsFragment.newInstance(position);
default:
return VideosFragment.newInstance(position);
}
}
@Override
public CharSequence getPageTitle(int position) {
return tabTitles[position];
}
}
Run Code Online (Sandbox Code Playgroud)
小智 5
这是正常的行为。默认情况下 FragmentStatePagerAdapter 保持当前显示的片段及其邻居的链接。首先适配器创建 Fragment0 和 Fragment1。当您滑动到 Fragment1 时,他将创建 Fragment2 并为此调用 getItem(2)。滑动到 Fragment2 后,adapter 将销毁 Fragment0 并创建 Fragment3。
| 归档时间: |
|
| 查看次数: |
957 次 |
| 最近记录: |