您的位置:首页 > 其它

使用Fragment和Viewpager实现Tab嵌套,仿网易云音乐tab

2016-10-26 21:52 1206 查看


效果图

我们先看布局文件

首先是一个顶部布局top 里面有五个图标

其次在main布局中嵌入top布局,并且定义一个viewpager

随后在定义三个子布局(tab01,tab02,tab03),分别对应三个可滑动的绿色图标。定义完三个tab后,在需要扩展的tab中再添加一个viewpager控件。

最后定义每个子布局的子布局,就是图中的个性推荐,歌单那些….

我们再来看java代码部分

首先建立三个Fragment类,f1,f2,f3,在每个Fragment中分别传入tab01,tab02,tab03。

首先在MainActivity中,把imageView,Fragment等控件初始化,创建一个list用来存放Fragment:

List mFragments = new ArrayList<>();

Fragment fragment1 = new Fragment1();

mFragments.add(fragment1);

再创建一个FragmentPageAdapter

注意在这里要 写一个空方法删除super防止Fragment被销毁重复加载:

@Override

public void destroyItem(ViewGroup container, int position, Object object) {

}


如果不这样 就会重复加载Fragment,在滑动时会产生BUG。

最后再为每一个图标添加监听,滑动时改变颜色,点击时改变颜色。同时监听viewpager的滑动。

同理

在Fragment1中,我们首先把linearlayout,textview等控件初始化,和xml视图连接起来。并且建立一个List用来存放Viewpager的页面。

随后将每个子页面的子页面添加到view中,比如:

View tab011 = mInflater.inflate(R.layout.tab011,null);

然后调用List的add()方法:

mList.add(tab011);

再为viewpager建立一个pagerAdapter…

最后监听文字颜色变化等。

就是这么简单,so easy。

源代码不贴了,怕被大牛看了笑话….想要的私下找我吧
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐