Jump to content
Android Forum - A Community For Android Users and Enthusiasts

How to make TextView inside ViewPager scroll vertically


polygrimm
 Share

Recommended Posts

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

 

   <?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

 

<?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:

 

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;
}
}

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...