我是一位乐于助人的助手,我可以为您翻译文本。
我有一个包含项目列表的视图。当我点击列表中的某个项目时,它会在新的活动(和新的片段)中显示该特定对象的详细信息。这都很正常。
现在,我想添加一个功能,使用户可以从所选详细活动中显示的项目向下/向上滑动,因此他不必返回列表并选择另一个项目。我尝试使用ViewPager和FragmentStatePagerAdapter,它确实起作用,并且具有很好的效果。
我的Activity.java:
我有一个包含项目列表的视图。当我点击列表中的某个项目时,它会在新的活动(和新的片段)中显示该特定对象的详细信息。这都很正常。
现在,我想添加一个功能,使用户可以从所选详细活动中显示的项目向下/向上滑动,因此他不必返回列表并选择另一个项目。我尝试使用ViewPager和FragmentStatePagerAdapter,它确实起作用,并且具有很好的效果。
我的Activity.java:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_exercise);
// Instantiate a ViewPager and a PagerAdapter.
mPager = (ViewPager) findViewById(R.id.pager);
mPagerAdapter = new ScreenSlidePagerAdapter(getSupportFragmentManager());
mPager.setAdapter(mPagerAdapter);
...
}
private class ScreenSlidePagerAdapter extends FragmentStatePagerAdapter {
public ScreenSlidePagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
// pos is the position of the object in the list
Fragment fragment = ExerciseFragment.newInstance(exercisesArray, pos+position);
return fragment;
}
@Override
public int getCount() {
return exercisesArray.size();
}
}
我的问题:
ViewPager是我想要的正确方式吗?每次用户划到下一个项目时,都会实例化一个新的片段。列表可能包含约100个项目...所以可能会创建100个片段?这可能是一个问题吗?
只有当选择并滑动第一项时,我的实现才能正常工作。例如:我有一个包含5个项目的列表,第一个被点击。现在我可以向右滑动到第二项,到第三项,回到第二项。但是如果用户点击列表的第三项,我就无法向左滑动到第二项和第一项!任何人有想法吗?
非常感谢!