您的位置 首页 元件

使用ViewPager+Fragment+slidingmenu侧滑组件完成

最近折腾了很久,经过三番五次的推倒重来,总算是弄出了一个效果比较满意的侧滑demo。把主要的实现流程mark下来,方便日后翻阅,实现的效果图(手

最近折腾了好久,经过屡次三番的推倒重来,总算是弄出了一个作用比较满意的侧滑demo。把首要的完成流程mark下来,便利日后翻阅,完成的作用图(手动录制的,不流通):

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.android.com/tools

android:layout_width=match_parent

android: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

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/xinpin/yuanjian/282253.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部