新聞中心

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

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

        作者: 時間:2018-09-07 來源:網絡 收藏

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

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

        從圖上可以看到,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

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 和林格尔县| 鹤山市| 蓬溪县| 靖州| 修文县| 团风县| 山阴县| 亳州市| 柳河县| 田林县| 永平县| 内乡县| 琼海市| 垫江县| 吴旗县| 定结县| 吉首市| 遂平县| 濮阳县| 双辽市| 达拉特旗| 西青区| 台南市| 四会市| 上虞市| 柳林县| 罗城| 湘潭县| 顺平县| 马龙县| 泰州市| 普洱| 兰考县| 安多县| 元氏县| 明水县| 汝南县| 钦州市| 沁水县| 克什克腾旗| 铜梁县|