zoukankan      html  css  js  c++  java
  • 初探碎片

    解决android studio中使用碎片后,平板预览出错问题

    预览出错预览出错
    解决办法:
    在左右fragment各加tools:layout="@layout/left_fragment"

    问题地址,点进去后记得顶这个问题!
    显示正常了:
    显示显示

    其中,使用碎片的顺序应该是,写的方向则相反:

    1
    fragment->碎片类: 调用该类
    碎片类->布局: 加载该布局

    动态添加碎片

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    //新建碎片类实例
    anotherFragment anotherFragment = new anotherFragment();
    //碎片管理器
    android.app.FragmentManager fragmentManager = getFragmentManager();
    //用碎片管理器开启事务
    FragmentTransaction transaction = fragmentManager.beginTransaction();
    //替换前者容器中的碎片实例,从这里可以看出,在布局文件<fragment name="...">,实际上是创建了该碎片类的实例
    transaction.replace(R.id.right_container,anotherFragment);
    //提交事务
    transaction.commit();

    动态添加碎片实则是在一个容器中(此例为FrameLayout)将一个碎片(实例)替换成另一个碎片(实例)

    在碎片中模拟返回栈

    在事务(transaction)被commit前,添加transaction.addToBackStack(null),按Back键可以返回事务前的状态

    从布局文件获取碎片实例,接着就可以调用碎片的方法:

    1
    LeftFragment leftfrag = (LeftFragment) getFragmentManager().findFragmentById(R.id.left_frag);

    碎片中调用活动的方法:
    因为:活动)(1)<–绑定–>布局<–包含–>碎片->对应碎片类->在碎片类里面通过getActivity()获取相关联活动(1)

    碎片的生命周期

    • 若有在事务提交前 addToBackStack,那么起初的碎片会onPause->onStop->onDestroyView,按Back键会重新加载该碎片 onActivityCreated->onStart->onResume(没有onCreateView,原因是借助addToBackStack使得先前碎片的实例和视图得以保存)
    • 反之,在碎片被替换后,onDestroyView->onDestroy->onDetach

    preview无法显示

    previewpreview

    问题的解答

    大致意思是,只要你代码写的对,真实运行的是时候就不会出错,忽略这个问题即可。我想会不会和上面的那个问题有关,加上tools:layout="@layout/left_fragment"果然正确显示出来了

    其实,可以推理出,tools:layout="@layout/left_fragment"不过是用了来自xmlns:tools="http://schemas.android.com/tools"的工具,你不加,无非无法预览而已,该运行的还是运行起走

  • 相关阅读:
    [wikioi]最长严格上升子序列
    [leetcode]Pascal's Triangle II
    [leetcode]Remove Duplicates from Sorted Array II
    [leetcode]Remove Duplicates from Sorted List
    STL中set底层实现方式
    有N个大小不等的自然数(1--N),请将它们由小到大排序。要求程序算法:时间复杂度为O(n),空间复杂度为O(1)。
    C#基本语句
    C#程序大打开
    如何知道自己是工作组计算机中的哪个
    weka平台
  • 原文地址:https://www.cnblogs.com/gabygoole/p/5299861.html
Copyright © 2011-2022 走看看