美文网首页
2018-10-08

2018-10-08

作者: 傻乎乎的家伙 | 来源:发表于2018-10-08 08:04 被阅读0次

    Fragment使用


    为什么需要Fragment

    使用Fragment可以将一个复杂的界面和代码逻辑给切分成小区块,以明朗化设计,便于后期的查错和维护。

    Fragment的使用步骤

    新建类继承Fragment

    在新建Fragment时,仅勾选Create layout XML,建一个简单的Fragment
    如 public class fragment extends Fragment {.........}

    设计Fragment的布局

    根据需求设计界面,界面的初始化和刷新可以在对应的Fragment中完成。

    在主活动布置FrameLayout

    新建Framelayout,设置id为layout,作为加载Fragment的容器

    在主活动中引入Fragment

    1、新建fragment型变量newFragment
    public fragment newFragment = new fragment();

    2、新建FragmentManager型变量 fragmentManager
    FragmentManager fragmentManager = getFragmentManager();

    3、新建FragmentTransaction型变量 transaction
    FragmentTransaction transaction = fragmentManager.beginTransaction();

    4、再调用replace方法加载fragment到容器后并提交
    transaction.replace(R.id.layout,newFragment);
    transaction.commit();
    另外还有add、remove等方法,可自行摸索

    活动和Fragment的互动

    在活动中调用Fragment的方法

    1、在活动中找到layout中的fragment
    fragment newFragment = (fragment) getFragmentManager().findFragmentById(R.id.layout);

    2、调用fragment的方法刷新界面
    newFragment.refresh(input data);

    在Fragment中调用活动的方法

    1、新建活动型变量MainActivity mainActivity,初始化代码如下:
    mainActivity=(MainActivity)getActivity();

    2、调用其方法即可
    mainActivity.sendDataToPd(cmd);


    Fragment使用时的注意

    1、界面控件每次加载都需要初始化,因为仅View型变量做为返回值传递给上层了,其他的控件属性均由Fragment自行保存。
    2、若FrameLayout中有加载过多个fragment,在活动重要判断找到的是哪个Fragment。
    3、使用Fragment的replace方法时,不同Fragment之间的切换能够轻易被察觉,会给用户不好的UI交互体验,目前可行的解决办法是在提花或是加载Fragment时,同时对界面元素进行刷新,避免直接加载布局元素的默认属性。

    相关文章

      网友评论

          本文标题:2018-10-08

          本文链接:https://www.haomeiwen.com/subject/ozcdaftx.html