Created
April 27, 2012 22:53
-
-
Save georgiecasey/2514071 to your computer and use it in GitHub Desktop.
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
public class ListViewPagerAdapter extends PagerAdapter { | |
protected static final String TAG = "ListViewPagerAdapter"; | |
protected static final int NUM_VIEWS = 3; | |
protected final Activity mActivity; | |
public ListViewPagerAdapter(Activity activity) { | |
mActivity = activity; | |
} | |
@Override | |
public int getCount() { | |
return NUM_VIEWS; | |
} | |
@Override | |
public void startUpdate(View container) {} | |
@Override | |
public Object instantiateItem(View container, int position) { | |
// ViewPager | |
ViewPager viewPager = (ViewPager) container; | |
// Wird verwendet, um die Views aufzurufen | |
LayoutInflater layoutInflater = mActivity.getLayoutInflater(); | |
// Standardmäßig ist news eingeblendet | |
View view = layoutInflater.inflate(R.layout.news_fragment, null); | |
// Falls sich die Position verändert, so verändert sich auch die View | |
if (position == 0) { | |
view = layoutInflater.inflate(R.layout.favorite_fragment, null); | |
} else if (position == 2) { | |
view = layoutInflater.inflate(R.layout.videos_fragment, null); | |
} | |
// View einblenden | |
viewPager.addView(view, 0); | |
return view; | |
} | |
@Override | |
public void destroyItem(View container, int position, Object object) { | |
// ViewPager | |
ViewPager viewPager = (ViewPager) container; | |
// View | |
View view = (View) object; | |
// View löschen | |
viewPager.removeView(view); | |
} | |
@Override | |
public void finishUpdate(View container) {} | |
@Override | |
public boolean isViewFromObject(View view, Object object) { | |
View _view = (View) object; | |
return view == _view; | |
} | |
@Override | |
public Parcelable saveState() { | |
return null; | |
} | |
@Override | |
public void restoreState(Parcelable state, ClassLoader loader) {} | |
} | |
private View mCurrentView; | |
@Override | |
public void setPrimaryItem(ViewGroup container, int position, Object object) { | |
mCurrentView = (View)object; | |
} | |
Map<Integer, Object> views = Maps.newHashMap(); | |
@Override | |
public Object instantiateItem(View container, int position) { | |
/* Create and add your View here */ | |
Object result = ??? | |
views.put(position, result); | |
return result; | |
} | |
@Override | |
public void destroyItem(View container, int position, Object object) { | |
/** Remove your View here */ | |
views.remove(position); | |
} | |
protected View findViewForPosition(int position) { | |
Object object = views.get(position); | |
if (object != null) { | |
for (int i = 0; i < getChildCount(); i++) { | |
View view = getChildAt(i); | |
if (isViewFromObject(view, object)) { | |
return view; | |
} | |
} | |
} | |
return null; | |
} | |
private View getCurrentView() | |
{ | |
for (int i = 0; i < pager.getChildCount(); i++) | |
{ | |
View v = pager.getChildAt(i); | |
if (v != null) | |
{ | |
if (v.getTag().equals(pageList.get(pager.getCurrentItem()).getTag())) return v; | |
// pageList is a list of pages that I pass to page adapter | |
} | |
} | |
return null; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment