I have a problem actually with my app, my ViewPager and ViewPagerIndicator ( http://viewpagerindicator.com/) are not displaying anything and i don't see why. I checked everything multiple times (setting correctly the adapter, adding the view in instantiateItem, returning the good size in getCount(),...), tried a few things (changing the layout params in the xml, reworking the MyPagerAdapter class), even looking for a similar issue in Google and here but nothing worked/wans't my problem.
I also have a bog, don't know if that has a link, but the instantiateItem method in my PagerAdapter is only called 2 times, while getCount() is well returning 3.
I really don't know where that can come from, if anybody has an idea i'll take it with great pleasure :
OnCreate (Of the Activity containing the ViewPager & ViewPagerIndicator) :
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_infos_vehicle);
title = (TextView) findViewById(R.id.title);
ll = (LinearLayout) findViewById(R.id.mygallery);
filenames = new ArrayList<String>();
[...]
MyPagerAdapter adapter = new MyPagerAdapter(getResources().getStringArray(R.array.infos_vehicle));
ViewPager pager = (ViewPager) findViewById(R.id.pager);
pager.setAdapter(adapter);
TitlePageIndicator indicator = (TitlePageIndicator) findViewById(R.id.titles_pager);
indicator.setFooterIndicatorStyle(IndicatorStyle.Triangle);
indicator.setViewPager(pager);
[...]
}
MyPagerAdapter class (The 3rd case was here for a more visible test, see if it wasn't my fillGeneral or fillEquipments methods that were messed up) :
private class MyPagerAdapter extends PagerAdapter {
private final String[] TITLES;
public MyPagerAdapter(String[] titles) {
TITLES = titles;
}
@Override
public int getCount() {
return (TITLES.length);
}
@Override
public Object instantiateItem(View collection, int position) {
LayoutInflater inflater = (LayoutInflater) getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = null;
switch (position) {
case (0):
v = inflater.inflate(R.layout.linear_layout, null);
fillGeneral((ViewGroup) v.findViewById(R.id.layout));
break;
case (1):
v = inflater.inflate(R.layout.linear_layout, null);
fillEquipments((ViewGroup) v.findViewById(R.id.layout));
break;
case (2):
v = new ImageView(getApplicationContext());
((ImageView) v).setImageDrawable(getApplicationContext().getResources().getDrawable(android.R.drawable.alert_dark_frame));
break;
}
((ViewPager) collection).addView(v);
return (v);
}
@Override
public CharSequence getPageTitle(int position) {
return (TITLES[position]);
}
@Override
public void destroyItem(View collection, int position, Object view) {
((ViewPager) collection).removeView((View) view);
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return (arg0.equals(arg1));
}
@Override
public Parcelable saveState() {
return null;
}
}
And the activity xml :
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="10dp"
android:text="@string/hello_world"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@color/first_color" />
<Button
android:id="@+id/try_vehicle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/title"
android:layout_centerHorizontal="true"
android:layout_marginTop="40dp"
android:onClick="tryingAlert"
android:text="@string/try_vehicle" />
<Button
android:id="@+id/ask_informations"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/try_vehicle"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:onClick="informationsAlert"
android:text="@string/ask_informations" />
<Button
android:id="@+id/remove_selection"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="removeFromSelection"
android:layout_below="@+id/ask_informations"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:text="@string/remove_selection" />
<HorizontalScrollView
android:id="@+id/scroll"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/remove_selection"
android:layout_marginTop="18dp"
android:scrollbars="none" >
<LinearLayout
android:id="@+id/mygallery"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
</LinearLayout>
</HorizontalScrollView>
<com.viewpagerindicator.TitlePageIndicator
android:id="@+id/titles_pager"
android:layout_below="@id/scroll"
android:layout_height="wrap_content"
android:layout_width="fill_parent" />
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/titles_pager" />
</RelativeLayout>
</ScrollView>
What it gives me (The Activity ends here and as shown, the ViewPagerIndicator displays nothing) : https://i.stack.imgur.com/xhyYI.jpg (External link, can't post pictures sorry!)