zoukankan      html  css  js  c++  java
  • 第一阶段团队冲刺第五天

      设计了底部导航栏,经过了团队商讨决定设计四个导航栏和一个发布按钮,并使用fragment进行切换,这里遇到的问题是根据代码,每次切换都会重新add一个fragment,我根据自己的想法,根据show和hide方法自己进行更改,实现了切换时不会重新add一个新的fragment的功能。

    在登录成功后,用户看到的应该是主界面的设计,因此我选择使用底部导航栏来增强用户的使用体验,在用户主界面,用户可以通过点击下方的底部导航栏实现界面的切换 。

    主要的代码如下:

    private void initView() {
    mTabRadioGroup = findViewById(R.id.tabs_rg);
    mFragmentSparseArray = new SparseArray<>();
    //f1=new newfragment1(list.get(0));
    F1=new FragmentFirst(list.get(0));
    mFragmentSparseArray.append(R.id.today_tab,F1);
    /*
    mFragmentSparseArray.append(R.id.record_tab, new FragmentSecond());
    mFragmentSparseArray.append(R.id.contact_tab, new FragmentThird(MYID));
    mFragmentSparseArray.append(R.id.settings_tab, new firstFragment());

    */
    mTabRadioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
    @Override
    public void onCheckedChanged(RadioGroup group, int checkedId) {
    // 具体的fragment切换逻辑可以根据应用调整,例如使用show()/hide()
    // getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
    // mFragmentSparseArray.get(checkedId)).commit();
    FragmentTransaction transaction=getSupportFragmentManager().beginTransaction();
    //hidefrag(transaction);
    if(mFragmentSparseArray.get(checkedId)==null){
    if(checkedId==R.id.record_tab){
    mFragmentSparseArray.append(R.id.record_tab, new FragmentSecond(list.get(0)));
    getSupportFragmentManager().beginTransaction().add(R.id.fragment_container,
    mFragmentSparseArray.get(R.id.record_tab)).commit();
    }
    else if(checkedId==R.id.contact_tab){
    mFragmentSparseArray.append(R.id.contact_tab, new FragmentThird(MYID,MYTP,MYNICHENG));
    getSupportFragmentManager().beginTransaction().add(R.id.fragment_container,
    mFragmentSparseArray.get(R.id.contact_tab)).commit();
    }
    else if(checkedId==R.id.settings_tab){

    Fragment f=new FragmentForth(list.get(0));
    mFragmentSparseArray.append(R.id.settings_tab, f);
    getSupportFragmentManager().beginTransaction().add(R.id.fragment_container,
    mFragmentSparseArray.get(R.id.settings_tab)).commit();

    }
    }
    hidefrag(transaction);
    transaction.show(mFragmentSparseArray.get(checkedId)).commit();

    }
    });
    // 默认显示第一个
    getSupportFragmentManager().beginTransaction().add(R.id.fragment_container,
    mFragmentSparseArray.get(R.id.today_tab)).commit();
    addbut=(ImageView)findViewById(R.id.sign_iv);
    addbut.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    Intent intent = new Intent(User.this,Publishother.class);
    intent.putExtra("MYID",list.get(0).getId());
    intent.putExtra("MYTP",list.get(0).getTupian());
    intent.putExtra("MYNICHENG",list.get(0).getNicheng());
    startActivity(intent);
    }
    });
    }
    public void hidefrag(FragmentTransaction fra){
    if(mFragmentSparseArray.get(R.id.today_tab)!=null){
    fra.hide(mFragmentSparseArray.get(R.id.today_tab));
    }
    if(mFragmentSparseArray.get(R.id.record_tab)!=null){
    fra.hide(mFragmentSparseArray.get(R.id.record_tab));
    }
    if(mFragmentSparseArray.get(R.id.contact_tab)!=null){
    fra.hide(mFragmentSparseArray.get(R.id.contact_tab));
    }
    if(mFragmentSparseArray.get(R.id.settings_tab)!=null){
    fra.hide(mFragmentSparseArray.get(R.id.settings_tab));
    }
    }
  • 相关阅读:
    Docker安装mysql
    解决SpringMVC+Thymeleaf中文乱码
    Web API 自动生成接口文档
    .Net Core 定时任务TimeJob
    使用 FTP 迁移 SQL Server 数据_迁移数据_快速入门(SQL Server)_云数据库 RDS 版-阿里云
    SQLServer · 最佳实践 · 如何将SQL Server 2012降级到2008 R2-博客-云栖社区-阿里云
    PNG文件转png8
    实战ASP.NET访问共享文件夹(含详细操作步骤)
    MVC JsonResult
    你必须知道的EF知识和经验
  • 原文地址:https://www.cnblogs.com/ruangongwangxiansheng/p/14912604.html
Copyright © 2011-2022 走看看