android 初識ViewPager

來源:互聯網
上載者:User

android 初識ViewPager

1.準備工作


每一個view,只是img不一樣,其他都是一樣的

<framelayout android:layout_height="match_parent" android:layout_width="match_parent" android:orientation="vertical" xmlns:android="http://schemas.android.com/apk/res/android">        </framelayout>

2.主布局。xml

//這裡要做相容            //這裡這得是引導欄                    

3.activity.java裡面的代碼

public class MainActivity extends Activity {    private ViewPager pager;    //定義一個泛型用於儲存每一個view    private Listviewlist;    private PagerTabStrip tab;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //初始化        viewlist = new ArrayList();        pager =(ViewPager) findViewById(R.id.pager);        tab = (PagerTabStrip)findViewById(R.id.tab);        //將每一個xml布局檔案轉化為view       View view1 = View.inflate(this, R.layout.view1, null);       View view2 = View.inflate(this, R.layout.view2, null);       View view3 = View.inflate(this, R.layout.view3, null);       View view4 = View.inflate(this, R.layout.view4, null);       //把view放進數組空間裡面       viewlist.add(view1);       viewlist.add(view2);       viewlist.add(view3);       viewlist.add(view4);               //設定引導欄的屬性,更多請查閱api       tab.setBackgroundColor(Color.BLACK);       tab.setTextColor(Color.WHITE);       tab.setDrawFullUnderline(false);       tab.setTabIndicatorColor(Color.WHITE);       //這裡面是viewpager的適配器       MyPagerAdapter adapter = new MyPagerAdapter(viewlist);           //設定轉換動畫,也可以不設定轉換動畫,那樣切換的效果就很死板  pager.setPageTransformer(true, new DepthPageTransformer());       //這是另外一個不同效果的轉換動畫    //pager.setPageTransformer(true, new ZoomOutPageTransformer());       pager.setAdapter(adapter);           }}

4.viewpager的適配器,這裡沒有什麼要註明的,相應的參數都記住怎麼填的就行了,如果要設定title則加個getPageTitle方法,定義一個titlelist,把每一頁的title寫進list裡面

public class MyPagerAdapter extends PagerAdapter{    private Listviewlist;    public MyPagerAdapter(Listviewlist){        this.viewlist=viewlist;    }    @Override    public int getCount() {        // TODO Auto-generated method stub        return viewlist.size();    }    @Override    public boolean isViewFromObject(View arg0, Object arg1) {        // TODO Auto-generated method stub        return arg0==arg1;    }    @Override    public Object instantiateItem(ViewGroup container, int position) {        // TODO Auto-generated method stub        container.addView(viewlist.get(position));        return viewlist.get(position);    }    @Override    public void destroyItem(ViewGroup container, int position, Object object) {        // TODO Auto-generated method stub        container.removeView(viewlist.get(position));    }}

原理:
將xml檔案轉換為view放進list泛型裡面,用pageradapter適配器綁定viewlist資料來源呈現出來,想要加動畫就setPageTransformer參數第一個是true,第二個是一個動畫類,api中也可以查到一個是DepthPageTransformer,一個是ZoomOutPageTransformer

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.