Fragment使用
為什么需要Fragment
使用Fragment可以將一個(gè)復(fù)雜的界面和代碼邏輯給切分成小區(qū)塊案疲,以明朗化設(shè)計(jì),便于后期的查錯(cuò)和維護(hù)麻养。
Fragment的使用步驟
新建類繼承Fragment
在新建Fragment時(shí)络拌,僅勾選Create layout XML,建一個(gè)簡單的Fragment
如 public class fragment extends Fragment {.........}
設(shè)計(jì)Fragment的布局
根據(jù)需求設(shè)計(jì)界面回溺,界面的初始化和刷新可以在對(duì)應(yīng)的Fragment中完成。
在主活動(dòng)布置FrameLayout
新建Framelayout混萝,設(shè)置id為layout遗遵,作為加載Fragment的容器
在主活動(dòng)中引入Fragment
1、新建fragment型變量newFragment
public fragment newFragment = new fragment();
2逸嘀、新建FragmentManager型變量 fragmentManager
FragmentManager fragmentManager = getFragmentManager();
3车要、新建FragmentTransaction型變量 transaction
FragmentTransaction transaction = fragmentManager.beginTransaction();
4、再調(diào)用replace方法加載fragment到容器后并提交
transaction.replace(R.id.layout,newFragment);
transaction.commit();
另外還有add崭倘、remove等方法翼岁,可自行摸索
活動(dòng)和Fragment的互動(dòng)
在活動(dòng)中調(diào)用Fragment的方法
1、在活動(dòng)中找到layout中的fragment
fragment newFragment = (fragment) getFragmentManager().findFragmentById(R.id.layout);
2司光、調(diào)用fragment的方法刷新界面
newFragment.refresh(input data);
在Fragment中調(diào)用活動(dòng)的方法
1琅坡、新建活動(dòng)型變量MainActivity mainActivity,初始化代碼如下:
mainActivity=(MainActivity)getActivity();
2残家、調(diào)用其方法即可
mainActivity.sendDataToPd(cmd);
Fragment使用時(shí)的注意
1榆俺、界面控件每次加載都需要初始化,因?yàn)閮HView型變量做為返回值傳遞給上層了坞淮,其他的控件屬性均由Fragment自行保存茴晋。
2、若FrameLayout中有加載過多個(gè)fragment回窘,在活動(dòng)重要判斷找到的是哪個(gè)Fragment诺擅。
3、使用Fragment的replace方法時(shí)啡直,不同F(xiàn)ragment之間的切換能夠輕易被察覺烁涌,會(huì)給用戶不好的UI交互體驗(yàn),目前可行的解決辦法是在提花或是加載Fragment時(shí)酒觅,同時(shí)對(duì)界面元素進(jìn)行刷新烹玉,避免直接加載布局元素的默認(rèn)屬性。