我想知道如何在ViewpageIndicator中设置布局适配器。我有3个布局我想用ViewpageIndicator滚动。每个布局都有自己的活动。
SampleCirclesWithListener类:
public class SampleCirclesWithListener extends BaseSampleActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.simple_circles);
mAdapter = new TestFragmentAdapter(getSupportFragmentManager());
mPager = (ViewPager)findViewById(R.id.pager);
mPager.setAdapter(mAdapter);
mIndicator = (CirclePageIndicator)findViewById(R.id.indicator);
mIndicator.setViewPager(mPager);
//We set this on the indicator, NOT the pager
mIndicator.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
public void onPageSelected(int position) {
Toast.makeText(SampleCirclesWithListener.this, "Changed to page " + position, Toast.LENGTH_SHORT).show();
}
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
我一直在寻找解决方案的时间。有人可以帮忙吗? 非常感谢你!
答案 0 :(得分:2)
我想知道如何在ViewpageIndicator中设置布局适配器
您没有“在ViewpageIndicator中设置布局适配器”。您在PagerAdapter
中设置了ViewPager
,并且可能使用ViewPagerIndicator
ViewPager
。
每个布局都有自己的活动。
ViewPager
不支持活动之间的分页。它支持视图之间的分页,其中这些视图可选地由片段管理(例如,FragmentPagerAdapter
)。
答案 1 :(得分:2)
扩展CommonsWare的优秀答案并填写代码供您设想:
如果你有Jake Wharton的ViewPageIndicator演示项目,你应该有一个TestFragmentAdapter
和一个TestFragment
。
TestFragmentAdapter
类扩展了 FragmentPagerAdapter
,TestFragment
类应扩展 Fragment
。现在,无法进行分页槽活动,但您可以分页。
创建Fragment
并使用片段内的onCreateView()
方法将其设置为您的布局:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.layout, container, false);
}
现在你的FragmentPagerAdapter中应该有一个名为getItem()
的方法。 Switch
位置并将其设置为您的片段:
@Override
public Fragment getItem(int position) {
switch(position){
case 0:
TestFragment fragment = new TestFragment();
return fragment;
case 1:
TestFragment2 fragment2 = new TestFragment2();
return fragment2;
}
return defaultFragment fragment3 = new defaultFragment();
return fragment3;
}
现在它应该像你想要的那样工作。