有没有办法让它ViewPager不是水平滚动,而是垂直滚动?!
我在我的ViewPager实例中使用的片段是非常耗费资源的,所以我只想一次加载一个.当我尝试以下内容时:
mViewPager.setOffscreenPageLimit(0);
mViewPager.setAdapter(mPagerAdapter);
Run Code Online (Sandbox Code Playgroud)
我的FragmentStatePagerAdapter.getItem(int position)覆盖功能被调用3次,这是我打电话时发生的事情mViewPager.setOffscreenPageLimit(1).我希望它只被调用一次,因为我指定了0个屏幕外页面.
我相信我正在正确地呼唤一切,因为如果我打电话mViewPager.setOffscreenPageLimit(2),FragmentStatePagerAdapter.getItem(int position)就像我期望的那样被召唤5次.
ViewPager是否需要至少1个屏幕外页面,或者我在这里做错了什么?
我在Fragments里面使用3 Viewpager,问题是我在Asynctask和装载机中加载大数据.在类似的设备上HTC one,它工作正常,但是,在低端设备上,它需要花费很多时间.这主要是因为当我实现它时pagerAdapter,我将Fragments放入其中ArrayList,这会强制片段在加载主活动时实例化.我需要的是它只是"加载"第一个片段(main),当用户Swype加载另一个片段时.它的任何方式实现这一目标?这是我的pageAdapater
public class PagerAdapter extends FragmentPagerAdapter {
private final ArrayList<Fragment> mFragments = new ArrayList<Fragment>();
// private final ArrayList<String> titulos = new ArrayList<String>();
// private int NUM_PAGES =0;
public PagerAdapter(FragmentManager manager,int num_pages) {
super(manager);
// this.NUM_PAGES = num_pages;
}
public void addFragment(Fragment fragment,String title) {
mFragments.add(fragment);
notifyDataSetChanged();
}
@Override
public int getCount() {
//return NUM_PAGES;
return mFragments.size();
}
@Override
public Fragment getItem(int position) {
return mFragments.get(position); …Run Code Online (Sandbox Code Playgroud) 我用ViewPager用Fragment.
但它一次加载两页.
有没有办法在viewpager中只加载一个页面?
android android-fragments android-viewpager fragmentstatepageradapter
即使我设置了oViewPager.setOffscreenPageLimit(0),我的视图寻呼机仍然会在可见页面的每一侧加载1个屏幕页面.
如何在用户滑动页面时仅加载页面?
我的适配器如果有帮助:
public class MainPagerAdapter extends FragmentPagerAdapter {
protected static final String[] CONTENT = new String[] { "page 1", "page 2", "page 3", "page 4", };
private int mCount = CONTENT.length;
public MainPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
//return TestFragment.newInstance(CONTENT[position % CONTENT.length]);
return MainFragment.newInstance(position);
}
@Override
public int getCount() {
return mCount;
}
@Override
public CharSequence getPageTitle(int position) {
return MainPagerAdapter.CONTENT[position % CONTENT.length];
}
public void setCount(int count) {
if (count > 0 && …Run Code Online (Sandbox Code Playgroud)