android复习路之fragment篇
来源:互联网 发布:php url encode 在线 编辑:程序博客网 时间:2024/05/16 03:24
1.fragment的生命周期必须依附于activity:
2.fragment依附于activity的的生命周期图:
3.fragment各个函数的用法:
3.1 on attach:与窗口关联后就可以调用,可以通过Fragment.getActivity方法获取窗口,但fragment没有初始化不能进行操作。
3.2 oncreate:可以从bundle中获得数据,不要进行耗时操作,不然无法加载窗口。
3.3 oncreateview:用来在fragment中装载view视图。
3.4 onviewcreated:创建完窗口后activity立刻回掉该方法。
3.5 onactivitycreated:activity执行完on create方法之后,系统立马调用该方法。表示窗口已经初始化完成,从这一个时候开始,就可以在Fragment中使用getActivity().findViewById(Id);来操控Activity中的view了。
3.6 onstart:fragment已经显示在ui 但是不可以进行交互
3.7 onresume:fragment可以进行交互了
3.8 onpause:活跃到非活跃的第一个函数,进行数据保存。
3.9 ondestroyview:oncreateview创建的视图全部被移除
3.10 ondestroy:activity还可以获得fragment的对象但是无法操作。
3.11ondetached:死亡
4.Fragment中的主要的操作函数:
FragmentTransactiontransaction= fm.benginTransatcion();//开启一个事务
transaction.add() //往Activity中添加一个Fragment transaction.remove() //从Activity中移除一个Fragment,如果被移除的Fragment没有添加到回退栈(回退栈后面会详细说),这个Fragment实例将会被销毁。 transaction.replace() //使用另一个Fragment替换当前的,实际上就是remove()然后add()的合体~ transaction.hide() //隐藏当前的Fragment,仅仅是设为不可见,并不会销毁 transaction.show() //显示之前隐藏的Fragment detach() //当fragment被加入到回退栈的时候,该方法与*remove()*的作用是相同的, //反之,该方法只是将fragment从视图中移除, //之后仍然可以通过*attach()*方法重新使用fragment, //而调用了*remove()*方法之后, //不仅将Fragment从视图中移除,fragment还将不再可用。 attach() //重建view视图,附加到UI上并显示。 transatcion.commit()//提交一个事务
5.例子:创建一个fragment并且在activity中加载
fragment代码:
public class aFragment extends Fragment { @Nullable @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.fragmentlayout, container, false); }}fragment的xml:
main代码:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/afragment" android:orientation="vertical" > <TextView android:text="TextView" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/textView" android:background="#ff00ff" /></LinearLayout>
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); aFragment fragment1=new aFragment(); getFragmentManager().beginTransaction().replace(R.id.content,fragment1).commit(); getFragmentManager().beginTransaction().show(fragment1); }}main的xml:
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.zobject.fragement.MainActivity"><FrameLayout android:id="@+id/content" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_marginLeft="13dp" android:layout_marginStart="13dp" android:layout_marginTop="175dp" android:background="#fff000" >
</RelativeLayout>
效果图:- android复习路之fragment篇
- Android 复习笔记之图解Fragment
- Android复习之旅--Activity/Service/Fragment 生命周期
- android复习路之布局篇
- android复习路之activity篇
- android复习路之Service篇
- android复习路之handler篇
- android复习路之自定义View篇
- android复习路之tween动画篇
- android复习路之LitePal篇
- android复习路之service综合篇
- Android复习(Fragment用法)
- Android 复习6 fragment argument
- android复习路之手打链表篇
- android复习路之SurfaceView
- android 复习之路之Activity
- android复习路之手打二叉树篇
- android复习路之事件分发机制篇
- 修改tomcat端口号
- anaconda安装报错解决
- struts2总结
- 利用grub2.0/grub4dos实现双硬盘双(多)系统
- java webstruct2 学习
- android复习路之fragment篇
- tornado学习笔记(一):如何给ioloop.run_sync()中调用的函数传入参数
- Servlet工作原理和生命周期
- 数据结构 (二)
- Nginx 高并发TCP请求Linux系统参数配置
- 前后端分离,是为了彼此更好
- Android高级之十三讲-HotFix、热加载和增量更新
- 使用Font Awesome
- 利用scons构建工程