zoukankan      html  css  js  c++  java
  • Fragment之间通过add切换时的显示与隐藏

    新手,不知道用什么方法实现 ,通过动态的方法显示了Fragment   A,在这个里面点击列表项时add方法动态加载Fragment  B,但是两者都会一起显示,重叠在一起了,如果用replace方法,那么返回时原来的A内容就变化了,不是用户点击以前的了。个人的想法时在加载B时在B中隐藏A,当B退出时再把A显示出来,经过实践,效果还行。

    1. 创建A时,使用tag,方便在B中找到它。

     if (fragtwo==null){
         fragtwo=new twoFragment();
         FT.add(R.id.layFrame,fragtwo,"FA");
    }else{
         FT.show(fragtwo);
    }
    

    在A中创建B.

     lv_list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                   String url= filelist[position].toString();
                    FragmentManager Fm=getFragmentManager();
                    FragmentTransaction FT=Fm.beginTransaction();
                    Fragvideo=VideoFragment.newInstance(url);
                    FT.add(R.id.layFrame, Fragvideo,"FB");
                    FT.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
                    FT.addToBackStack(null);
                    FT.commit();
                }
            });
    

      

    在Fragment  B的 onCreateView中查找到A,然后隐藏起来,先定义一个Fragment,在不同的事件中使用。

    private Fragment Fm;
    
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState) {
            vi=inflater.inflate(R.layout.fragment_video, container, false);
            Fm=getFragmentManager().findFragmentByTag("Ftwo");
            getFragmentManager().beginTransaction().hide(Fm).commit();
    
    }
    

    在B中我是通过一个按钮来返回A的,在返回中让A显示出来,弹出B

     btn_fh.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    getFragmentManager().beginTransaction().show(Fm).commit();
                   getFragmentManager().popBackStack();
                   // getActivity().onBackPressed();
                }
     });
    

    不知道方法对不对,希望大神提供更好的方法,我是小白,代码太复杂了看不懂。

      

  • 相关阅读:
    register变量
    register变量
    const和volatile是否可以同时修饰一个变量?有什么特殊含义?
    关于多态性和虚函数的理解
    static全局变量与普通的全局变量有什么区别
    《c专家编程》学习笔记
    正则表达式入门学习
    mvc ActionResult
    ASP.NET MVC:通过 FileResult 向 浏览器 发送文件(传)
    Asp.net mvc 中的HttpContext
  • 原文地址:https://www.cnblogs.com/wjbych/p/7227212.html
Copyright © 2011-2022 走看看