Fragment的使用
分动态和静态的,下面的是动态的,布局文件中有个FrameLayout,使用时替换它。
静态的布局文件中是fragment,属性中加上想要的Fragment,不需要下面的。
Fragment中访问自己Activity里的方法
首先第一种是比较简单的一种访问方法在Fragment中使用getActivity()得到Activity对象,使用该对象访问Activity中的方法。
这种方法简单,易理解,但是却不合理,Fragment是由Activity管理的,这里却在Fragment中直接实例化了一个Activity对象。
第二种方法复杂一点,不好理解。
首先在Fragment中定义一个内部接口,在该接口中定义一个方法(此方法是你想使用的Activity中的方法),然后在该Fragment中封装一个该接口的对象,给它一个set方法。
接着在Activity中实现该接口,并实现该方法。在onCreate()中实例化一个Fragment,并通过set方法将本Activity传给这个Fragment对象(因为前面在Fragment中封装了一个接口对象,在这里Activity实现了那个接口)。
后面就可以在Fragment中使用封装的接口对象来调用Activity中的方法了(这里的ContentFragmentBtn()是在Activity中实现的)。
到这里你以为结束了吗?还没完,还有很重要的一点:
我们需要在Fragment的onAttach()方法中来判断Activity是否实现了内部接口,并将接口对象转化为特定的接口类型。
第二种方法从Fragment
向其宿主(Activity)传递数据或请求更新UI时非常有用。通过这种方式,可以确保Fragment
和宿主之间有良好的解耦和清晰的通信机制。
以上就是我在学习Fragment时遇到的难点。纯新手,大佬勿喷。