如何为圆形可滚动选项卡设置适配器
How to set the Adapter for the circular Scroll-able tab
我正在尝试使用 Infinite ViewPager 设置无限视图寻呼机(循环滚动选项卡),但是当我尝试设置适配器时
1.It 仅从末端工作(最后位置)。
2.It 在开始(位置 0)端不工作。
3.It 进一步滚动时重复最后一个片段。
我的适配器
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
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 Adapter and Mine pager adapter
但是当我尝试在另一个适配器中设置适配器时,我的适配器出现错误 class。
我在哪里做错了以及如何从开始和结束修复滚动。
你应该像这样设置适配器
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;
}
我正在尝试使用 Infinite ViewPager 设置无限视图寻呼机(循环滚动选项卡),但是当我尝试设置适配器时
1.It 仅从末端工作(最后位置)。
2.It 在开始(位置 0)端不工作。
3.It 进一步滚动时重复最后一个片段。
我的适配器
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
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 Adapter and Mine pager adapter
但是当我尝试在另一个适配器中设置适配器时,我的适配器出现错误 class。 我在哪里做错了以及如何从开始和结束修复滚动。
你应该像这样设置适配器
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;
}