zoukankan      html  css  js  c++  java
  • 《第一行代码》学习笔记16-碎片Fragment(1)

    1.碎片( Fragment):一种可以嵌入在活动当中的UI片段,能让程序更加合理和充分地利用大屏幕的空间,在平板上的应用广泛。
    2.碎片同样包括布局,有自己的生命周期,甚至可理解成一个迷你型的活动。
    3.碎片真正的强大之处在于,可以在程序运行时动态地添加到活动中。
    在活动中动态添加碎片(核心代码):

    @Override
        public void onClick(View v) {
            switch (v.getId()) {
                case R.id.button:
                    AnotherRightFragment fragment = new AnotherRightFragment();
                    FragmentManager fragmentManager = getFragmentManager();
                    FragmentTransaction transaction = fragmentManager.beginTransaction();
                    transaction.replace(R.id.right_layout, fragment);
                    transaction.commit();
                    break;
                default:
                    break;
            }
        }
    

    (1)创建待添加的碎片实例。
    (2)获取到FragmentManager,活动中直接调用getFragmentManager()方法得到。
    (3)开启一个事物,通过调用beginTransaction()方法开启。
    (4)向容器中加入碎片,一般使用replace()方法实现,需要传入容器的id和待添加的碎片实例。
    (5)提交事务,调用commit() 方法来完成。
    4.模拟类似返回栈效果,按下back键回到上一个碎片。FragmentTransaction中提供了addToBackStack() 方法,用于将一个事务添加到
    返回栈中。调用该方法,可以接收一个名字用于描述返回栈的状态,一般传入null即可。
    5.FragmentManager提供了类似于findViewById()的方法,专门用于从布局文件中获取碎片实例。

    RightFragment rightFragment = (RightFragment) getFragmentManager().findFragmentById(R.id.right_fragment);
    

    在每个碎片中通过调用getActivity()方法得到和当前碎片相关联的活动实例。

    MainActivity activity = (MainActivity) getActivity();
    

    碎片与碎片之间通信:在一个碎片中得到相关联的活动,通过活动去获取另外一个碎片的实例,则实现了不同碎片之间的通信功能。

  • 相关阅读:
    Python格式化输出
    每天写点shell脚本 (持续更新)
    linux limits.conf 配置
    ELK 日志分析系统
    开源大数据处理工具
    glusterFS分布式存储部署流程
    glusterFS的部署流程
    parted命令详解
    /proc文件系统
    /proc文件系统(二):/proc/<pid>/stat
  • 原文地址:https://www.cnblogs.com/Iamasoldier6/p/5014788.html
Copyright © 2011-2022 走看看