天天看點

android垂直viewpager,android – 在ViewPager中垂直滾動頁面

這可能是顯而易見的,并且是一個完全不必要的文章,但是我一直在解決一個方法來允許在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);

}

}

}

我可以批評代碼,但至少這裡是一個功能的例子