Created
April 17, 2016 07:41
-
-
Save jpt1122/384f2031b6e77216bf3945c3eec84e94 to your computer and use it in GitHub Desktop.
ViewPager and PagerTabStrip Demo In Android
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* 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