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));
    }
    }
  • 相关阅读:
    第七章 深入理解多态
    第六章 继承和多态
    第五章 体验套餐管理系统
    第四章 深入类的方法
    第三章 使用集合组织相关数据
    第二章 深入C#数据类型
    mysql 创建表字段类型笔记
    梳理下phpmyadmin改root密码后登录不上的问题。
    easyui 验证控件 tooltip message显示位置
    random模块详解
  • 原文地址:https://www.cnblogs.com/ruangongwangxiansheng/p/14912604.html
Copyright © 2011-2022 走看看