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));
    }
    }
  • 相关阅读:
    【php】PHP.ini配置文件中文
    IE6下背景图片不缓存问题或者document.execCommand("BackgroundImageCache",false,true)
    【javascript基础】之【IE著名bug——如果某个实例属性与标为[[DontEnum]]的某个属性同名,那么该实例属性不会出现在for in】
    【javascript基础】之【javascript1.6 Array 新增方法】之【indexOf】
    【javascript基础】之【javascript1.6 Array 新增方法】
    【javascript基础】之【确定元素坐标】
    【javascript基础】之【constructor属性】
    【javascript基础】之【__defineGetter__ 跟 __defineSetter__】
    jQuery Ajax 防止重复提交
    网页浏览器内核的比较研究
  • 原文地址:https://www.cnblogs.com/ruangongwangxiansheng/p/14912604.html
Copyright © 2011-2022 走看看