实战独立开发包含微博、微信、抖音的大型Android APP(二)

开头

目前该软件DEMO已经开发完成,想体验该软件的,可以去蒲公英https://www.pgyer.com/xK5X进行下载尝试。如果遇到问题欢迎询问,如果有愿意商业合作开发的也可以商谈。好了下面该说说当用户完成登录注册后进入主页,主页该怎么制作。

一、任务分析

既然到了主页,我们就要想想整个APP需要分哪几个模块,首先已经说了是包含微博、微信、抖音的APP,当然要包括微博模块、即时通讯模块、抖音模块。然后用户的一些个人设置比如修改头像、修改昵称、修改密码等。

二、具体制作

主页用一个Activity当主题、用ViewPager来实现左右滑动切换模块,在Activity下面用一个TabLayout做个导航栏,这样整个主页的布局就出来了。

这里用的TabLayout用的是第三方开源库FlycoTabLayout,感兴趣的可以去Github看看。创建4个Fragment用来进行跳转,ViewPager用来当容器展示Fragment。

public void initView(){
        for (int i = 0; i < mTitles.length; i++) {
            tabEntitys.add(new TabEntity(mTitles[i], mIconSelectIds[i], mIconSelectIds[i]));
        }

        fragments = new ArrayList<>();
        TopicFragment topicFragment = new TopicFragment();
        LittleVideoFragment littleVideoFragment = new LittleVideoFragment();
        ContactFragment contactFragment = new ContactFragment();
        MineFragment mineFragment = new MineFragment();
        NewsFragment newsFragment = new NewsFragment();
        fragments.add(newsFragment);
        fragments.add(topicFragment);
        fragments.add(littleVideoFragment);
        fragments.add(contactFragment);
        fragments.add(mineFragment);
        fragment_pager = findViewById(R.id.fragment_pager);
        fragment_pager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager(),BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT) {
            @NonNull
            @Override
            public Fragment getItem(int position) {
                return fragments.get(position);
            }

            @Override
            public int getCount() {
                return fragments.size();
            }
        });
        fragment_pager.setOffscreenPageLimit(4);
        fragment_pager.setCurrentItem(0);

        bottom_tab_layout = findViewById(R.id.bottom_tab_layout);
        bottom_tab_layout.setTabData(tabEntitys);
    }

这里要说一些要注意的地方,因为有抖音部分,所以当用户滑到抖音Fragment时要自动播放,而当用户划出时要自动停止视频的播放。而且当即时通讯系统接收到新的消息时,要在底部的TabLayout进行红点提示,这里就要对ViewPager进行换页监听了

public void initListener(){
        bottom_tab_layout.setOnTabSelectListener(new OnTabSelectListener() {
            @Override
            public void onTabSelect(int position) {
                fragment_pager.setCurrentItem(position);
            }

            @Override
            public void onTabReselect(int position) {

            }
        });

        fragment_pager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

            }

            @Override
            public void onPageSelected(int position) {
                if(position == 3){
                    bottom_tab_layout.hideMsg(3);
                }else if(position == 2){
                    EventBus.getDefault().post(new StartPlayEvent());
                }
                if(position != 2){
                    EventBus.getDefault().post(new StopPlayEvent());
                }
            }

            @Override
            public void onPageScrollStateChanged(int state) {

            }
        });
    }

这样基本的主页功能就完成了,下一步就从微博开始实现功能模块了。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值