• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

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

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

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

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

    本文引用地址:http://www.czjhyjcfj.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

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 峨边| 德清县| 安西县| 永城市| 竹山县| 黎平县| 姜堰市| 绥中县| 大埔区| 同德县| 巴林右旗| 三门峡市| 四子王旗| 古蔺县| 新巴尔虎右旗| 获嘉县| 大名县| 曲周县| 南昌市| 宝鸡市| 平乡县| 金湖县| 突泉县| 黄骅市| 莎车县| 托克逊县| 敦化市| 安西县| 都江堰市| 雷山县| 大竹县| 太仓市| 阿合奇县| 永安市| 大石桥市| 韶山市| 内乡县| 九台市| 屏东县| 华坪县| 仙游县|