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