Skip to content

Instantly share code, notes, and snippets.

@jpt1122
Created April 17, 2016 07:41
Show Gist options
  • Save jpt1122/384f2031b6e77216bf3945c3eec84e94 to your computer and use it in GitHub Desktop.
Save jpt1122/384f2031b6e77216bf3945c3eec84e94 to your computer and use it in GitHub Desktop.
ViewPager and PagerTabStrip Demo In Android
/* main.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/viewpager"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/background" >
<android.support.v4.view.PagerTabStrip
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top" />
</android.support.v4.view.ViewPager>
*/
//ViewPager Adapter
public class ViewPagerAdapter extends PagerAdapter {
// ----------------------------------------------------------------
private Gallery gallery_disc, gallery_fest, gallery_combo;
private ImageView selectedImageView;
private ImageView leftArrowImageView;
private ImageView rightArrowImageView;
private int discPos, festPos, comboPos = 0;
private List<String> drawable, d1, d2, d3;
private GalleryImageAdapter disc_adapter, fest_adapter, combo_adapter;
TextView tvOfferName_disc, tvDesc_disc, tvItems_disc, tvDiscount_disc;
TextView tvOfferName_fest, tvDesc_fest, tvItems_fest, tvDiscount_fest;
TextView tvOfferName_combo, tvDesc_combo, tvItems_combo, tvDiscount_combo;
String discOffer[][];
String comboOffer[][];
String festOffer[][];
String temp = "% Discount on Following Items:";
ProgressDialog pd;
// --------------------------------------
private static String[] titles = new String[] { "Sport", "Music",
"Games" };
private final Context context;
private int[] scrollPosition = new int[titles.length];
public ViewPagerAdapter(Context context) {
this.context = context;
for (int i = 0; i < titles.length; i++) {
scrollPosition[i] = 0;
}
}
@Override
public String getPageTitle(int position) {
return titles[position];
}
@Override
public int getCount() {
return titles.length;
}
@Override
public Object instantiateItem(View pager, final int position) {
//Instantiate your all controls here
LinearLayout llmain=new LinearLayout(context);
((ViewPager) pager).addView(llmain, 0);
return llmain;
}
@Override
public void destroyItem(View pager, int position, Object view) {
((ViewPager) pager).removeView((LinearLayout) view);
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view.equals(object);
}
@Override
public void finishUpdate(View view) {
}
@Override
public void restoreState(Parcelable p, ClassLoader c) {
if (p instanceof ScrollState) {
scrollPosition = ((ScrollState) p).getScrollPos();
}
}
@Override
public Parcelable saveState() {
return new ScrollState(scrollPosition);
}
@Override
public void startUpdate(View view) {
}
}
//To Maintain Scroll State after each Swipe
public class ScrollState implements Parcelable
{
private int[] scrollPos;
public static Parcelable.Creator<ScrollState> CREATOR = new Parcelable.Creator<ScrollState>()
{
@Override
public ScrollState createFromParcel( Parcel source )
{
int size = source.readInt();
int[] scrollPos = new int[ size ];
source.readIntArray( scrollPos );
return new ScrollState( scrollPos );
}
@Override
public ScrollState[] newArray( int size )
{
return new ScrollState[ size ];
}
};
public ScrollState( int[] scrollPos )
{
this.scrollPos = scrollPos;
}
@Override
public int describeContents()
{
return 0;
}
@Override
public void writeToParcel( Parcel dest, int flags )
{
dest.writeInt( scrollPos.length );
dest.writeIntArray( scrollPos );
}
public int[] getScrollPos()
{
return scrollPos;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment