文档章节

Android 底部导航栏的使用 fragment

n
 nandecanghai123
发布于 2017/09/05 14:34
字数 563
阅读 12
收藏 0

一、初始化各项组件

private void initViews() {
    viewPager = (ViewPager) findViewById(R.id.view_pager);
    imgDynamic = (ImageView) findViewById(R.id.tab_dynamic_get);
    imgMsg = (ImageView) findViewById(R.id.tab_msg_get);
    imgExam = (ImageView) findViewById(R.id.tab_exam_get);
    imgMe = (ImageView) findViewById(R.id.tab_me);
    viewPager.setOffscreenPageLimit(6);
    imgExam.setOnClickListener(new ImgOnClickListener(0));
    imgDynamic.setOnClickListener(new ImgOnClickListener(1));
    imgMsg.setOnClickListener(new ImgOnClickListener(2));
    imgMe.setOnClickListener(new ImgOnClickListener(3));
}

二、在list里添加各个fragment(每个标签页的界面)
private void initAllFragments() {
    // 将Fragment添加到List中
    fragments = new ArrayList<Fragment>();
    examFragment = new ExamFragment();
    fragments.add(examFragment);
    similarFragment=new SimilarPeopleFragment();
    fragments.add(similarFragment);
  
    faxianFragment=new DiscoverFragment();
    fragments.add(faxianFragment);
    messageFragment = new MessageFragment();
    fragments.add(messageFragment);
    friendListFragment = new FriendListFragment();
    fragments.add(friendListFragment);
    meFragment = new MeFragment();
    fragments.add(meFragment);


    // 设置Adapter
    myFragmentPagerAdapter = new MyFragmentPagerAdapter(getSupportFragmentManager(),
            fragments);
    viewPager.setAdapter(myFragmentPagerAdapter);

    // 设置初始页面,并设置tab效果
    viewPager.setCurrentItem(0);
    imgExam.setImageResource(R.drawable.tab_exam_press);
    // 设置切换的监听器
    viewPager.setOnPageChangeListener(new MyPagerChangeListener());
}
/**
 * 点击底部tab时的切换监听器
 */
private class ImgOnClickListener implements View.OnClickListener {
    private int index = -1;
    // private ViewPager viewPagerGet;
    public ImgOnClickListener(int index) {
        this.index = index;
        // this.viewPagerGet = viewPagerGet;
    }

    @Override
    public void onClick(View v) {
        if (index==0) {
            viewPager.setCurrentItem(index, false);
        } if(index==1||index==2){
            viewPager.setCurrentItem(index + 1, false);
        }

        if(index==3){
            viewPager.setCurrentItem(index+2,false);
        }

    }
}
/**
 * tab切换时的监听器
 */
private class MyPagerChangeListener implements ViewPager.OnPageChangeListener {

    @Override
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {


    }

    @Override
    public void onPageSelected(int position) {
        switch (position) {


            case 0:
              /*  if (currentIndex == 0) {
                    imgDynamic.setImageResource(R.drawable.tab_dynamic);
                } else if (currentIndex == 1 || currentIndex == 2) {
                    imgMsg.setImageResource(R.drawable.tab_message);
                } else if (currentIndex == 4) {
                    imgMe.setImageResource(R.drawable.tab_me);
                }*/
                imgDynamic.setImageResource(R.drawable.tab_dynamic);
                imgMsg.setImageResource(R.drawable.tab_message);
                imgMe.setImageResource(R.drawable.tab_me);
                imgExam.setImageResource(R.drawable.tab_exam_press);
                setExamActionBar();
                setExamExam();
                break;

            case 1:
              /*  if (currentIndex == 0) {
                    imgDynamic.setImageResource(R.drawable.tab_dynamic);
                } else if (currentIndex == 1 || currentIndex == 2) {
                    imgMsg.setImageResource(R.drawable.tab_message);
                } else if (currentIndex == 4) {
                    imgMe.setImageResource(R.drawable.tab_me);
                }*/
                imgDynamic.setImageResource(R.drawable.tab_dynamic);
                imgMsg.setImageResource(R.drawable.tab_message);
                imgMe.setImageResource(R.drawable.tab_me);
                imgExam.setImageResource(R.drawable.tab_exam_press);
                setExamActionBar();
                setExamSimilar();
                break;
            case 2:

                imgMsg.setImageResource(R.drawable.tab_message);
                imgExam.setImageResource(R.drawable.tab_exam);
                imgMe.setImageResource(R.drawable.tab_me);
                imgDynamic.setImageResource(R.drawable.tab_dynamic_press);
                setDynamicActionBar();
                break;
            case 3:
               /* if (currentIndex == 0) {
                    imgDynamic.setImageResource(R.drawable.tab_dynamic);
                } else if (currentIndex == 3) {
                    imgExam.setImageResource(R.drawable.tab_exam);
                } else if (currentIndex == 4) {
                    imgMe.setImageResource(R.drawable.tab_me);
                } else {

                }*/
                imgDynamic.setImageResource(R.drawable.tab_dynamic);
                imgExam.setImageResource(R.drawable.tab_exam);
                imgMe.setImageResource(R.drawable.tab_me);
                imgMsg.setImageResource(R.drawable.tab_message_press);

                setMesActionBar();
                setMes();

                break;
            case 4:
               /* if (currentIndex == 0) {
                    imgDynamic.setImageResource(R.drawable.tab_dynamic);
                } else if (currentIndex == 3) {
                    imgExam.setImageResource(R.drawable.tab_exam);
                } else if (currentIndex == 4) {
                    imgMe.setImageResource(R.drawable.tab_me);
                } else {

                }*/
                imgDynamic.setImageResource(R.drawable.tab_dynamic);
                imgExam.setImageResource(R.drawable.tab_exam);
                imgMe.setImageResource(R.drawable.tab_me);
                imgMsg.setImageResource(R.drawable.tab_message_press);


                setMesActionBar();
                setFriend();

                break;



            case 5:
                /*if (currentIndex == 0) {
                    imgDynamic.setImageResource(R.drawable.tab_dynamic);
                } else if (currentIndex == 1 || currentIndex == 2) {
                    imgMsg.setImageResource(R.drawable.tab_message);
                } else if (currentIndex == 3) {
                    imgExam.setImageResource(R.drawable.tab_exam);
                }*/
                imgDynamic.setImageResource(R.drawable.tab_dynamic);
                imgMsg.setImageResource(R.drawable.tab_message);
                imgExam.setImageResource(R.drawable.tab_exam);
                imgMe.setImageResource(R.drawable.tab_me_press);
                setSelfMesActionBar();
                break;

        }
        currentIndex = position;
    }

    @Override
    public void onPageScrollStateChanged(int state) {

    }
}
/**
 * 点击底部tab时的切换监听器
 */
private class ImgOnClickListener implements View.OnClickListener {
    private int index = -1;
    // private ViewPager viewPagerGet;
    public ImgOnClickListener(int index) {
        this.index = index;
        // this.viewPagerGet = viewPagerGet;
    }

    @Override
    public void onClick(View v) {
        if (index==0) {
            viewPager.setCurrentItem(index, false);
        } if(index==1||index==2){
            viewPager.setCurrentItem(index + 1, false);
        }

        if(index==3){
            viewPager.setCurrentItem(index+2,false);
        }

    }
}
**
 * 设置Fragment显示的Adapter
 * Created by lsy on 15-2-13.
 */
public class MyFragmentPagerAdapter extends FragmentStatePagerAdapter {

    private ArrayList<Fragment> list;
   /* private Context context;*/

    public MyFragmentPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    public MyFragmentPagerAdapter(FragmentManager fm, ArrayList<Fragment> list) {
        super(fm);
        this.list = list;
    }

    /* public MyFragmentPagerAdapter(ArrayList<Fragment> list,Context context){
         this.list = list;
         this.context = context;
     }*/
    @Override
    public Fragment getItem(int position) {
        return list.get(position);
    }

    @Override
    public int getCount() {
        return list.size();
    }

    @Override
    public int getItemPosition(Object object) {
        return super.getItemPosition(object);
    }
}

本文转载自:http://blog.csdn.net/u010184245/article/details/47327629

n
粉丝 0
博文 47
码字总数 0
作品 0
烟台
私信 提问
Android交流会-碎片Fragment,闲聊单位与尺寸

女孩:又周末了哦~ 男孩:那么今日来开个交流会,我们也学一学人家高大尚的大会,自己开一个,广州站,Android开发攻城狮交流会~ 1.Fragment概要: Android从3.0开始引入了Fragment的概念,中...

达叔小生
2018/07/28
0
0
Android底部导航栏(可滑动)----TabLayout+viewPager

【TabLayout】   ①TabLayout是选项卡,在屏幕空间有限的情况下,对不同的空间进行分组。属于android support design,更多的用于新闻上,如果放在底部也可做底部导航栏        ②T...

汪菜菜
03/12
0
0
程序猿媛二:Android底部导航栏(选项卡)

底部导航栏(选项卡) ViewPager+RadioGroup 声明:博文为原创,文章内容为,效果展示,思路阐述,及代码片段。源码请通过应用内下载。 转载请保留原文出处“http://my.oschina.net/gluoyer...

花佟林雨月
2013/11/10
17.7K
3
底部导航栏-----FragmentTabHost

【说明】   1、主界面上添加父容器:FragmentTabHost     属于v4兼容包     需要指定该id为android:id/tabhost,不能修改,表示由android系统来托管这个id。     本身是一个Fra...

汪菜菜
03/11
0
0
Android项目开发之--------地铁时光机(一,搭建主框架)

Android项目开发之--------地铁时光机(一,搭建主框架) 一:先看一下框架搭建后的效果图 , 二:框架结构   (1)底部导航栏采用的是: MainActivity(主框架), MsgFragment(首页), ...

SEOwhywhy
06/29
37
0

没有更多内容

加载失败,请刷新页面

加载更多

数据库中间件MyCat

什么是MyCat? 查看官网的介绍是这样说的 一个彻底开源的,面向企业应用开发的大数据库集群 支持事务、ACID、可以替代MySQL的加强版数据库 一个可以视为MySQL集群的企业级数据库,用来替代昂贵...

沉浮_
今天
4
0
解决Mac下VSCode打开zsh乱码

1.乱码问题 iTerm2终端使用Zsh,并且配置Zsh主题,该主题主题需要安装字体来支持箭头效果,在iTerm2中设置这个字体,但是VSCode里这个箭头还是显示乱码。 iTerm2展示如下: VSCode展示如下: 2...

HelloDeveloper
今天
6
0
常用物流快递单号查询接口种类及对接方法

目前快递查询接口有两种方式可以对接,一是和顺丰、圆通、中通、天天、韵达、德邦这些快递公司一一对接接口,二是和快递鸟这样第三方集成接口一次性对接多家常用快递。第一种耗费时间长,但是...

程序的小猿
今天
4
0
Python机器学习之数据探索可视化库yellowbrick

背景介绍 从学sklearn时,除了算法的坎要过,还得学习matplotlib可视化,对我的实践应用而言,可视化更重要一些,然而matplotlib的易用性和美观性确实不敢恭维。陆续使用过plotly、seaborn,...

yeayee
今天
8
0
重读《学习JavaScript数据结构与算法-第三版》- 第5章 队列

定场诗 马瘦毛长蹄子肥,儿子偷爹不算贼,瞎大爷娶个瞎大奶奶,老两口过了多半辈,谁也没看见谁! 前言 本章为重读《学习JavaScript数据结构与算法-第三版》的系列文章,主要讲述队列数据结...

胡哥有话说
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部