Witam Was serdecznie!
Postanowiłem skorzystać z ViewPagera aby ustawić sobie kilka widoków przewijanych slidem.
Spójrzcie na kod:
Moje activity:
public class MainActivity extends ActionBarActivity {
private int imageArra[] = {R.drawable.ic_launcher, R.drawable.ic_launcher, R.drawable.ic_launcher};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ViewPagerAdapter adapter = new ViewPagerAdapter(this, imageArra);
ViewPager myPager = (ViewPager) findViewById(R.id.pager);
myPager.setAdapter(adapter);
myPager.setCurrentItem(0);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
A tu klasa ViewPagerAdapter:
public class ViewPagerAdapter extends PagerAdapter {
Activity activity;
int imageArray[];
public ViewPagerAdapter(Activity act, int[] imgArra) {
imageArray = imgArra;
activity = act;
}
public int getCount() {
return imageArray.length;
}
public Object instantiateItem(View collection, int position) {
ImageView view = new ImageView(activity);
view.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.FILL_PARENT));
view.setScaleType(ScaleType.FIT_XY);
view.setBackgroundResource(imageArray[position]);
((ViewPager) collection).addView(view, 0);
return view;
}
@Override
public void destroyItem(View arg0, int arg1, Object arg2) {
((ViewPager) arg0).removeView((View) arg2);
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == ((View) arg1);
}
@Override
public Parcelable saveState() {
return null;
}
}
Jak widać działa to na takiej zasadzie, że widok jest uzupełniony obrazkami, które przekazuję w parametrze i wszystko jest ok. Jednak widoki będą bardziej skomplikowane niż jeden obrazek. Moje pytanie brzmi:
Czy można przekazywać do klasy Layout, a następnie tworzyć na jego podstawie widok?
To znacznie ułatwiałoby sprawę. Stworzyłbym sobie layouty, z widokami których potrzebuje, a następnie poprzez klasę ViewPagerAdapter nakładał te layouty na aktualny widok w komórce.
Nie wiem być może robi się to inaczej dlatego pytam. Jeśli rozwiązuje się to całkowicie inaczej to poproszę o informację jak.
Pozdrawiam !
NieZnasz