相关疑难解决方法(0)

ViewPager作为循环队列/包装

我使用的是ViewPagerFragmentStatePagerAdapter让一些片段之间的导航.

比方说,我有三个片段:A,BC.ViewPager最初显示片段A,并允许您通过从右向左滑动,然后再次滑动到片段C来导航到片段B. 这允许以下导航路径:A <--> B <--> C.

我想要的是能够在片段A上从左向右滑动并让ViewPager显示片段C,即它表现为循环队列并允许 ... --> C <--> A <--> B <--> C <--> A <-- ...

我不希望片段在其他位置重复(即最终有三个以上的实例).

使用ViewPager可以实现这种包装功能吗?

android android-fragments android-viewpager

64
推荐指数
6
解决办法
5万
查看次数

如何创建循环viewpager?

可能重复:
ViewPager为循环队列/包装

我的代码中有三个片段类.FirstActivity,SecondActivity,ThirdActivity我想刷这三个活动..这三个是从Fragment类扩展而来的

public class ViewPagerFragmentActivity extends FragmentActivity {
private PagerAdapter mPagerAdapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    super.onCreate(savedInstanceState);
    super.setContentView(R.layout.viewpager_layout);
    initialisePaging();
    }

/**
 * Initialize the fragments to be paged
 */
List<Fragment> fragments = new Vector<Fragment>();
ViewPager pager;
private void initialisePaging() {
    fragments.add(Fragment.instantiate(this, FirstActivity.class.getName()));
    fragments.add(Fragment.instantiate(this, SecondActivity.class.getName()));
    fragments.add(Fragment.instantiate(this, ThirdActivity.class.getName()));
    this.mPagerAdapter = new MyPagerAdapter(super.getSupportFragmentManager(), fragments);
    pager = (ViewPager) super.findViewById(R.id.viewpager);
    pager.setAdapter(this.mPagerAdapter);

}
Run Code Online (Sandbox Code Playgroud)

}

这是我的FragmentPageAdapter类

public class MyPagerAdapter extends FragmentPagerAdapter {

private final List<Fragment> fragments;


public MyPagerAdapter(FragmentManager fm, List<Fragment> fragments) {
    super(fm);
    this.fragments …
Run Code Online (Sandbox Code Playgroud)

android

14
推荐指数
2
解决办法
3万
查看次数

ViewPager中的setCurrentItem不会立即滚动到正确的位置

我用了一个PagerAdapter.我有很多元素,所以我不会在同一时间加载所有元素.我重新加载适配器,我通过新元素更改旧元素.例如,我有4个元素,当我到达最后一个元素时,我重新加载元素,并且我调用setCurentItem(1)能够在第一个位置显示viewpager.我做了很多测试.我放:

viewPager.setCurrentItem(1,false); //But not scroll, put drastically the new page.
viewPager.setCurrentItem(1);
Run Code Online (Sandbox Code Playgroud)

我试图修改onPageScrollStateChanged(int arg0),我只有3个视图,总是在中间ubicate.

if (arg0 == ViewPager.SCROLL_STATE_DRAGGING) {
    if(focusedPage==2) {
        //Modify adapter
        viewPager.setCurrentItem(1,false);   

    }else if(focusedPage==0){
        //Modify adapter
        viewPager.setCurrentItem(1,false);
    } 
Run Code Online (Sandbox Code Playgroud)

我试着修改 onPageSelected(int arg0)

focusedPage=arg0;
Run Code Online (Sandbox Code Playgroud)

使用最后一个示例,我立即滚动视图,但始终位于最后一页.有谁知道我可以滑动.

谢谢

android scroll android-viewpager

13
推荐指数
1
解决办法
3万
查看次数