這可能是顯而易見的,并且是一個完全不必要的文章,但是我一直在解決一個方法來允許在VewPager中的頁面上進行垂直滾動功能,而且谷歌甚至這裡甚至沒有什麼決議.我發現一些人聲稱要解決這個問題,但似乎有所擴大和複雜.是以對于那些可能在尋找同樣的問題的人來說,解決方案.有了這個(你會想要比我在這裡寫的更大的字元串),你将能夠垂直滾動内容并在頁面之間滑動.
layout.xml
android:layout_width="match_parent"
android:layout_height="match_parent">
android:id="@+id/conpageslider"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
滾動檢視器類
public class ScrollingViewPager extends Activity{
private ViewPager pager;
private Context cxt;
private CharSequence[] pages = {"stuff","more stuff","other stuff"};
private PageSlider ps;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.layout);
cxt = this;
ps = new PageSlider();
pager = (ViewPager) findViewById(R.id.conpageslider);
pager.setAdapter(ps);
}
public class PageSlider extends PagerAdapter{
@Override
public int getCount() {
return pages.length;
}
@Override
public Object instantiateItem(View collection,int position) {
ScrollView sc = new ScrollView(cxt);
sc.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
sc.setFillViewport(true);
TextView tv = new TextView(cxt);
tv.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
tv.setText(pages[position]);
tv.setPadding(5,5,5);
sc.addView(tv);
((ViewPager) collection).addView(sc);
return sc;
}
@Override
public void destroyItem(View collection,int position,Object view) {
((ViewPager) collection).removeView((ScrollView) view);
}
@Override
public boolean isViewFromObject(View view,Object object) {
return view==((ScrollView)object);
}
}
}
我可以批評代碼,但至少這裡是一個功能的例子