Fragment知识点总结

1.fragment的添加与显示

            FragmentManager通过开启事务来隐藏,显示,添加,或者替换fragment到指定的framelayout容器中去,具体代码如下图:这里使用隐藏fragment的目的是为了防止该fragment切换到另外一个fragment的时候,用户输入的数据丢失,所以只是隐藏掉了fragment,并没有销毁,所以不会调用其onpause,onstop,ondestoryview等方法,等到需要显示的时候可以直接调用其show方法来使其显示,你会发现用户刚刚输入的内容都还存在。addToBackStack是指将fragment添加到fragment的返回栈中去,从而使每次退出一个fragment的时候就会导致出栈,返回栈空了之后才会回到该activity上去,进而才会退出该activity.简单来说,如果设置添加到返回栈,点击返回键就会返回上一个fragment.

Fragment知识点总结_第1张图片

transaction.replace其实是add和remove两个操作的结合。

2.fragment横竖屏切换时候的问题

           无论是fragment还是activity在进行横竖屏切换的时候,生命周期中的暂停停止销毁方法都会执行,在切换的时候再次重新创建,所以,如果用户在当前页面有数据,我们都需要调用onSaveInstanceState()方法将数据进行存储,然后在oncreate方法传入的bundle中进行获取,activity还可以通过onRestoreInstanceState()方法传入的bundle进行获取已达到保存用户当前页面信息的功能。

3.Fragmeny与Toolbar和MenuItem集成

            Fragment可以添加自己的MenuItem到Activity的Toolbar或者可选菜单中。

            a、在Fragment的onCreate中调用setHasOptionsMenu(true);

            b、然后在Fragment子类中实现onCreateOptionsMenu

            c、如果希望在Fragment中处理MenuItem的点击,也可以实现onOptionsItemSelected;当然了Activity也可以直接处理该MenuItem的点击事件。

            即调用a方法之后,fragment的onCreateOptionsMenu中设置的菜单就可以被集成到toolbar中去,然后可以直接在frgament的onOptionsItemSelected方法中进行处理,也可以在activity的onOptionsItemSelected方法中获取其id进行处理即可。但是注意


Fragment知识点总结_第2张图片

4.附加如何获取到toolbar的menu对象,进而动态设置menuItem


Fragment知识点总结_第3张图片

你可能感兴趣的:(Fragment知识点总结)