以前以爲滑動翻頁的效果挺炫的,目前初學android,因此本身在項目中嘗試實現了這個效果。數據是動態的。實現效果主要有幾個步驟:java
一、建立兩個佈局文件,一個佈局文件定義viewPager組件,如 <android.support.v4.view.ViewPager
android:id="@+id/vp_articles"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</android.support.v4.view.ViewPager >;另一個佈局文件定義在viewPager中要展現的View,由於有點複雜,代碼就不貼了android
二、建立一個activity管理viewPager,主要的java代碼有:ide
public class ActivityArticleTest extends BaseActivity {
private ViewPager viewPager = null; //定義viewPager
private LayoutInflater mInflater = null; //加載佈局文件用
private ArrayList<View> viewsList = null; //用arraylist 存儲要展示的view佈局
protected void onCreate(Bundle arg0) {this
viewPager = (ViewPager) findViewById(R.id.vp_articles);
mInflater = LayoutInflater.from(this);
viewsList = new ArrayList<View>();繼承
//做爲一個例子 往viewList添加View
for(int j =0 ; j<idslist.size();j++){
View view = mInflater.inflate(R.layout.activity_resumption_article, null);
viewsList.add(view);rem
//給viewPager添加適配器,也可繼承PagerAdapterget
viewPager.setAdapter(new PagerAdapter() {
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
// TODO Auto-generated method stub
return arg0==arg1;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return viewsList.size();
}
@Override
public int getItemPosition(Object object) {
// TODO Auto-generated method stub
return viewsList.indexOf(object);
}it
//這個方法和下面這個方法慢重要的
@Override
public Object instantiateItem(ViewGroup container, int position) {
container.addView(viewsList.get(position));
return viewsList.get(position);
}
@Override
public void destroyItem(ViewGroup container, int position,
Object object) {
// TODO Auto-generated method stub
container.removeView(viewsList.get(position));
}
});
viewPager.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int arg0) {
//從新發起請求,更新所在view
getDataFromRepreWeb(method, idslist.get(arg0));
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO Auto-generated method stub
}
@Override
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub
}
}); }io
}
模式簡單,重要的是和項目的業務結合