我里面有一个 ViewPager 和一个 TextView。当 TextView 的内容大到在屏幕上可见时,应该有可能垂直滚动它。但它不会自动执行此操作:(
这是TextView的 xml
<?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" />
这是ViewPager的 xml
<?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>
这是一个适配器:
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;
}
}