Reputation:
I would like to know how to set an Layout Adapter in ViewpageIndicator. I have 3 Layout I would like to scroll trough with the ViewpageIndicator. And every layout has its own Activity.
the SampleCirclesWithListener class:
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) {
}
I have been searching for hours for a Solution. Can somebody help? Thank you very much!
Upvotes: 4
Views: 346
Reputation: 72643
To extend CommonsWare's great answer and fill it with code for you to imagine:
If you have Jake Wharton's Demo Project of the ViewPageIndicator, you should have a TestFragmentAdapter
and a TestFragment
.
The TestFragmentAdapter
class extends the FragmentPagerAdapter
and the TestFragment
class should extend a Fragment
. Now paging trough Activities is not possible, but you can page trough fragments.
Create a Fragment
and set it to your layout with the onCreateView()
method inside your fragment:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.layout, container, false);
}
Now in your FragmentPagerAdapter there sould be a method called getItem()
. Switch
the Position and set it to your Fragment:
@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;
}
Now it should work like you want it to.
Upvotes: 2
Reputation: 1007484
I would like to know how to set an Layout Adapter in ViewpageIndicator
You do not "set an Layout Adapter in ViewpageIndicator". You set a PagerAdapter
in a ViewPager
, and perhaps use a ViewPagerIndicator
with that ViewPager
.
And every layout has its own Activity.
ViewPager
does not support paging between activities. It supports paging between views, where those views are optionally managed by a fragment (e.g., FragmentPagerAdapter
).
Upvotes: 2