2018-10-08

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时,同时对界面元素进行刷新,避免直接加载布局元素的默认属性。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1.首先安装Node.js 官网:https://nodejs.org/zh-cn/ 1)根据自己电脑型号下载好,...
    金政锐阅读 1,256评论 0 0
  • 经济增长总有周期。而且,正如桥水基金创始人瑞·达利欧所说,周期是难以逃脱的。在这种情况下,应该怎么投资,才能让自己...
    寻世良方Cc_Sandy拎0阅读 1,207评论 0 2
  • 1.什么是FTP操作? FTP操作的是windows系统和unix系统上的文件交换活动。 2.实现的步骤是什么? ...
    岁月神偷_bde8阅读 3,073评论 0 0
  • 越来越多的企业重视人力资源工作,不惜重金聘请HRVP、HRD。但另一方面,空降成功的HRD不多。这其中最大的问题是...
    人力精英阅读 4,168评论 0 1

友情链接更多精彩内容