【问题标题】:How to set the Adapter for the circular Scroll-able tab如何为圆形可滚动选项卡设置适配器
【发布时间】:2016-08-10 07:35:26
【问题描述】:

我正在尝试使用Infinite ViewPager 设置无限视图寻呼机(圆形可滚动标签),但是当我尝试设置适配器时

1.它只能从末端(last Position)工作。

2.它在开始(位置0)一侧不起作用。

3.当进一步滚动时,它会重复最后一个片段。

我的适配器

 private InfiniteViewPager pager = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

pager = (InfiniteViewPager) findViewById(R.id.pager);
FragmentManager fragmentManager = getSupportFragmentManager();
pager.setAdapter(new MyAdapter(fragmentManager));
pager.setPageTransformer(true, new CubeOutTransformer());
pager.setCurrentItem(2);

}

我的适配器类

class MyAdapter extends FragmentPagerAdapter {

public MyAdapter(FragmentManager fm) {
super(fm);
}
public int getActualPosition(int i){
return i < 5? i : 0;
}
@Override
public Fragment getItem(int i) {
Fragment fragment = null;
i = getActualPosition(i);
if (i == 0) {
    fragment = new Albums();
}
if (i == 1) {
    fragment = new Artists();
}
if (i == 2) {
    fragment = new Songs();
}
if (i == 3) {
    fragment = new Genres();
}
if (i == 4) {
    fragment = new Playlists();
}
return fragment;
}

@Override
public int getCount() {
return Integer.MAX_VALUE;
}

@Override
public CharSequence getPageTitle(int position) {
String title = new String();
if (position == 0) {
    return "ALBUMS";
}
if (position == 1) {
    return "ARTISTS";
}
if (position == 4) {
    return "PLAYLIST";
}
if (position == 3) {
    return "GENRES";
}
if (position == 2) {
    return "SONGS";
}
return title;
}
}

我经历过Infinite Pager AdapterMine pager adapter

但是当我尝试在另一个适配器中设置适配器时,我的适配器类中出现错误。 我在哪里做错了以及如何修复从开始和结束的滚动。

【问题讨论】:

    标签: android android-fragments android-adapter infinite-scroll android-scrollable-tabs


    【解决方案1】:

    你应该这样设置适配器

    MyAdapter adapter=new MyAdapter(fragmentManager); InfinitePagerAdapter myAdapter= new InfinitePagerAdapter(adapter); pager.setAdapter(myAdapter);

    也在你的适配器中更改此代码

    从这里

    @Override public int getCount() { return Integer.MAX_VALUE; }

    @Override public int getCount() { return 5; }

    【讨论】:

      猜你喜欢
      • 2013-01-14
      • 2013-07-24
      • 1970-01-01
      • 2023-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-24
      相关资源
      最近更新 更多