新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 利用ViewPager+Fragment+slidingmenu側滑組件實現

        利用ViewPager+Fragment+slidingmenu側滑組件實現

        作者: 時間:2016-10-29 來源:網絡 收藏

        最近折騰了很久,經過三番五次的推倒重來,總算是弄出了一個效果比較滿意的側滑demo。把主要的實現流程mark下來,方便日后翻閱,實現的效果圖(手動錄制的,不流暢):

        本文引用地址:http://www.104case.com/article/201610/306013.htm

        1.gif

        從圖上可以看到,demo上面有三個按鈕和一個包含3個Fragment頁面的ViewPager,另外左側滑能拉出一個左頁面。剛開始做的demo是直接用FragmentTabHost來實現的,并在這個基礎上繼承RelativeLayout寫了個布局,來實現頁面的側滑效果。那個demo的效果跟這個的主要差距就是三個tab之間只能通過點擊切換,沒有viewpager這樣的滑動切換效果。這個demo下面的三個按鈕其實是三個RadioButton,只是把它前面的圓點隱藏了(demo里面沒好好弄按鈕上的背景效果了)。之前嘗試過利用PagerTitleStrip來實現三個Tab的標簽,但結果是它們會隨著ViewPager不停滾動,沒法固定下來。

        demo主要的布局文件如下:

        1

        2

        3

        4

        5

        6

        7

        8

        9

        10

        11

        12

        13

        14

        15

        16

        17

        18

        19

        20

        21

        22

        23

        24

        25

        26

        27

        28

        29

        30

        31

        32

        33

        34

        35

        36

        37

        38

        39

        40

        xmlns:tools=http://schemas..com/tools

        :layout_width=match_parent

        :layout_height=match_parent >

        android:id=@+id/pager

        android:layout_width=fill_parent

        android:layout_height=wrap_content

        android:layout_above=@+id/titlelayout >

        android:id=@+id/titlelayout

        android:layout_width=fill_parent

        android:layout_height=wrap_content

        android:layout_alignParentBottom=true >

        android:id=@+id/tab_menu

        android:layout_width=fill_parent

        android:layout_height=wrap_content

        android:background=@drawable/tab_bg_normal

        android:orientation=horizontal >

        android:id=@+id/title1

        style=@style/tab_style

        android:checked=true

        android:drawableTop=@drawable/tab_activity_selector

        android:text=活動 />

        android:id=@+id/title2

        style=@style/tab_style

        android:drawableTop=@drawable/tab_friend

        android:text=工作 />

        android:id=@+id/title3

        style=@style/tab_style

        android:drawableTop=@drawable/tab_friend

        android:text=圈子 />

        要實現ViewPager+Fragment的滑動效果,必須繼承FragmentActivity,同時要給ViewPager設置Adapter。由于ViewPager上面要加載Fragment(需要繼承Fragment類),所以不是重載PagerAdapter,而是重寫FragmentPagerAdapter類:

        1

        2

        3

        4

        5

        6

        7

        8

        9

        10

        11

        12

        13

        14

        15

        16

        17

        18

        19

        20

        21

        22

        23

        24

        public class MyViewPagerAdapter extends FragmentPagerAdapter {

        private ArrayList fragments;//需要添加到上面的Fragment

        public MyViewPagerAdapter(FragmentManager fm) {

        super(fm);

        }

        /**

        * 自定義的構造函數

        * @param fm

        * @param fragments ArrayList

        */

        public MyViewPagerAdapter(FragmentManager fm,ArrayList fragments) {

        super(fm);

        this.fragments = fragments;

        }

        @Override

        public Fragment getItem(int arg0) {

        return fragments.get(arg0);//返回Fragment對象

        }

        @Override

        public int getCount() {

        return fragments.size();//返回Fragment的個數

        }

        }

        寫好了adapter,在主函數的onCreate()函數里面初始化ViewPager,同時給它配置adapter和設置滑動事件監聽(這需要實現OnPageChangeListener接口):

        1

        2

        3

        4

        5

        6

        7

        8

        9

        10

        11

        12

        13

        14

        15

        16

        17

        18

        19

        20

        21

        22

        23

        24

        25

        26

        27

        28

        29

        30

        31

        32

        33

        34

        35

        36

        37

        /**

        * 初始化視圖

        */

        private void initView() {

        // TODO Auto-generated method stub


        上一頁 1 2 3 下一頁

        關鍵詞: android

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 靖宇县| 丰顺县| 巴中市| 尖扎县| 大同市| 沾益县| 新建县| 鞍山市| 西昌市| 石首市| 清涧县| 平定县| 农安县| 琼中| 库尔勒市| 修水县| 华坪县| 腾冲县| 瓮安县| 中卫市| 巍山| 麟游县| 张掖市| 吉木乃县| 宁德市| 天台县| 福泉市| 武城县| 义乌市| 青铜峡市| 文昌市| 芦溪县| 兴文县| 黔南| 永春县| 腾冲县| 平罗县| 吴江市| 华阴市| 柞水县| 司法|