昨天,我看公司app的代码时,发现了


onHiddenChanged的代码,刚开始我不知道是用来做什么的,后来在网上搜索了一下资料,也终于弄懂了。


项目中,为了实现不同fragment之间值得传递,首先想到的是利用bundle或者shareprefercnce之类的共享数据机制,当不符合项目需求,有点过于复杂和冗余,就利用网上一位前辈的建议,在主Activity中,创建一个共享的数据变量,在其他fragment中只要获取到这个值就可以得到数据,实现共享,代码如下:

 

主activity定义一个共享数据变量:
   private String instrName;
	
	public String getInstrName() {
		return instrName;
	}

	public void setInstrName(String instrName) {
		this.instrName = instrName;
	}

在其他fragment中使用如下语句即可得到该数据:

 

 

String instrName = ((MainActivity)getActivity()).getInstrName();


这个是简单的fragment与activity之间的传值,但是在我们的项目里,一般主界面是多个fragment,当我们在fragment之前切换时,我们会把之前的fragment隐藏,显示后面的fragment。当fragment隐藏时,就可以调用onHiddenChanged,来做一些事情。

@Override
    public void onHiddenChanged(boolean hidd) {
        if (hidd) {

                //隐藏时所作的事情


        } else {
            //显示时所作的事情

        }
 


fragment的隐藏监听就这么简单。









Logo

Agent 垂直技术社区,欢迎活跃、内容共建,欢迎商务合作。wx: diudiu5555

更多推荐