I've got a ViewPager and a TextView inside it. When content of TextView is larger then it is visible on screen, there shall be possibility to scroll it vertically. But it does not do this automatically
Here is an xml for
TextView
Code:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/txText"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#338877"
android:padding="15dp"
android:scrollHorizontally="false"
android:scrollbarAlwaysDrawVerticalTrack="true"
android:scrollbars="vertical"
android:textAppearance="?android:attr/textAppearanceMedium" />
And here is an xml for
ViewPager
Code:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/RelativeLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<android.support.v4.view.ViewPager
android:id="@+id/vpPonkSwiper"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_above="@+id/lbPonkFooter" />
<TextView
android:id="@+id/lbPonkFooter"
android:layout_width="fill_parent"
android:layout_height="30dp"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:text="Footer" />
</RelativeLayout>
Here is an
Adapter:
Code:
public class PonkPageAdapter extends PagerAdapter
{
private int pagesCount = -1;
private List<Ponk> data;
private App app;
private MockPersistence db;
private Activity activity;
private TextView currentView;
private LayoutInflater inflater;
public PonkPageAdapter(Activity activity, byte section) {
this.activity = activity;
this.app = ((App) activity.getApplication());
this.db = app.getPersistence();
this.section = section;
this.data = db.findPonksBySection(section); // new LinkedList<Ponk>();
this.inflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
//
this.pagesCount = db.countPonksInSection(section);
}
@Override
public int getCount()
{
return pagesCount;
}
@Override
public Object instantiateItem(View collection, int position)
{
TextView tv = getNewView();
Ponk j = data.get(position);
tv.setText(j.text);
tv.setTag(j.id);
setFontSizeInSP(tv, app.getFontSize());
tv.setTag(position);
((ViewPager) collection).addView(tv, 0);
return tv;
}
private TextView getNewView()
{
LayoutInflater inflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
TextView tv = (TextView)inflater.inflate(R.layout.Ponk, null);
return tv;
}
@Override
public void setPrimaryItem(ViewGroup container, int position, Object object)
{
currentView = (TextView) object;
}
@Override
public void destroyItem(View collection, int position, Object view)
{
((ViewPager) collection).removeView((TextView) view);
}
@Override
public boolean isViewFromObject(View view, Object object)
{
return view == (TextView) object;
}
@Override
public Parcelable saveState()
{
return null;
}
}