如何为圆形可滚动选项卡设置适配器 [英] How to set the Adapter for the circular Scroll-able tab

查看:96
本文介绍了如何为圆形可滚动选项卡设置适配器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I am trying to set infinite view Pager(circular Scroll-able tab) using Infinite ViewPager but when I tried to set the adapter

1.它仅从末端(最后位置)开始工作.

1.It work only from the end side (last Position).

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

2.It is not working on the start(position 0) side.

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

3.It repeat the last fragment when scrolled further.

我的适配器

 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;
}
}

我已经经历过矿用寻呼机适配器

但是当我尝试将适配器设置在另一个适配器中时,我的适配器类出现错误. 我在哪里做错了,以及如何从开始到结束都解决滚动问题.

but when I try to set the adapter inside another adapter I am getting an error in my adapter class. where I am doing wrong and how I can fix the scrolling from both starting and ending.

推荐答案

您应该这样设置适配器

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

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

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

Also in your adapter change this code

从这里

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

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

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

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

这篇关于如何为圆形可滚动选项卡设置适配器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆