我在我的项目中使用了“ViewPagerIndicator”库。
我在xml中有ViewPager和ViewPagerIndicator,好吧。
我的问题是我无法编写正确的适配器。 我将Jake Warton在其示例中使用的适配器进行了比较,但无法使其正常工作 ViewPager工作正常,在屏幕上看到的ViewPagerIndicator ......但是没有移动。
如果脉冲,例如,在viewpagerindicator的第二项上移动了viewpager ......但是从不移动viewpagerindicator
这是主要的活动代码:
//...
pager = (ViewPager) findViewById(R.id.pager);
ViewPagerAdapter adapterViewPager = new ViewPagerAdapter(getSupportFragmentManager());
adapterViewPager.addFragment(new FRG_home());
adapterViewPager.addFragment(new Fragment_One());
adapterViewPager.addFragment(new Fragment_Two());
adapterViewPager.addFragment(new Fragment_Three());
pager.setOffscreenPageLimit(5);
pager.setAdapter(adapterViewPager);
PageIndicator mIndicator = (TitlePageIndicator)findViewById(R.id.indicator);
mIndicator.setViewPager(pager);
//...
这是Jake Wharton的例子中使用的适配器代码:
class TestFragmentAdapter extends FragmentPagerAdapter implements IconPagerAdapter {
protected static final String[] CONTENT = new String[] { "This", "Is", "A", "Test", };
protected static final int[] ICONS = new int[] {
R.drawable.ic_launcher,
R.drawable.ic_launcher,
R.drawable.ic_launcher,
R.drawable.ic_launcher
};
private int mCount = CONTENT.length;
public TestFragmentAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
return TestFragment.newInstance(CONTENT[position % CONTENT.length]);
}
@Override
public int getCount() {
return mCount;
}
@Override
public CharSequence getPageTitle(int position) {
return TestFragmentAdapter.CONTENT[position % CONTENT.length];
}
public int getIconResId(int index) {
return ICONS[index % ICONS.length];
}
public void setCount(int count) {
if (count > 0 && count <= 10) {
mCount = count;
notifyDataSetChanged();
}
}
}
我想使用我在主要活动中添加ViewPager的片段:
adapterViewPager.addFragment(new FRG_home());
adapterViewPager.addFragment(new Fragment_One());
adapterViewPager.addFragment(new Fragment_Two());
adapterViewPager.addFragment(new Fragment_Three());
这是我的适配器:
public class ViewPagerAdapter extends FragmentPagerAdapter{
List<Fragment> fragments = null;
protected static final String[] CONTENT = new String[] { "This", "Is","a","Test", };
protected static final int[] ICONS = new int[] {
R.drawable.ic_launcher,
R.drawable.ic_launcher,
R.drawable.ic_launcher,
R.drawable.ic_launcher
};
private int mCount = CONTENT.length;
public ViewPagerAdapter(FragmentManager fm) {
super(fm);
fragments = new ArrayList<Fragment>();
}
public void addFragment(Fragment fragment){
fragments.add(fragment);
}
@Override
public Fragment getItem(int arg0) {
return fragments.get(arg0);
}
@Override
public int getCount() {
return fragments.size();
}
@Override
public CharSequence getPageTitle(int position) {
return ViewPagerAdapter.CONTENT[position % CONTENT.length];
}
}
我试了差不多两天,但我无法创建正确的适配器来移动ViewPagerIndicator
我感谢您的帮助,提前致谢
问候。
答案 0 :(得分:18)
您是否有机会OnPageChangeListener
设置ViewPager
?如果是这样,您应该将OnPageChangeListener
设置为不ViewPager
,而是设置为指标本身。