内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

Fragment組件怎么用

這篇文章主要介紹“Fragment組件怎么用”,在日常操作中,相信很多人在Fragment組件怎么用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Fragment組件怎么用”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

創(chuàng)新互聯(lián)公司專注于集安網(wǎng)站建設服務及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供集安營銷型網(wǎng)站建設,集安網(wǎng)站制作、集安網(wǎng)頁設計、集安網(wǎng)站官網(wǎng)定制、小程序開發(fā)服務,打造集安網(wǎng)絡公司原創(chuàng)品牌,更為您提供集安網(wǎng)站排名全網(wǎng)營銷落地服務。

一、Fragment與Activity的關系

要理解動態(tài)管理Fragment首先要理解一下Fragment與Activity的關系

Fragment可以理解為將Activity劃分為若干個片段,F(xiàn)ragment是Activity的一部分,生命周期是依賴Activity的,是不能單獨存在的。這樣不難理解所有Fragment的管理(查找、添加、刪除、替換)都應該在Fragment所依賴的Activity中進行,也就是Activity才是Fragment交互的場所,不要試圖在一個Fragment中去管理另一個Fragment雖然也可以實現(xiàn)要求的功能但是不符合規(guī)范的。要完成對Fragment的具體操作需要使用FragmentManager組件。

二、使用FragmentManager組件

使用FragmentManager組件的關鍵代碼如下:

//1、創(chuàng)建FragmentManager組件 FragmentManager fm=super.getSupportFragmentManager(); //2、查詢方法,獲得Activity中某一個Fragment fm.findFragmentById(R.id.fooler) fm.findFragmentByTag(”tagName”) //3、動態(tài)添加Fragment fm.beginTransaction().add(R.id.content,contentFragment,"content").commit(); //4、替換Fragment fm.beginTransaction().replace(R.id.OldFragment, newFragment).commit(); //5、刪除Fragment fm.beginTransaction().remove(R.id.myFragment).commit(); //6、向Fragment傳遞數(shù)據(jù) f.setArguments(Bundle )方法傳遞數(shù)據(jù)

上述管理Fragment代碼應組織在Fragment所屬的Activity中去,下面就通過一個案例來看看具體實現(xiàn).

三、實現(xiàn)案例

首先看一下本次的應用案例(如圖所示),當單擊底部***個區(qū)域和第二區(qū)域時實現(xiàn)中心區(qū)域的切換

Fragment組件怎么用

界面分析:有三個區(qū)域 :頭部區(qū)域TitleFragment,中心區(qū)域是一個FrameLayout布局通過代碼動態(tài)加載ContentFragment,底部區(qū)域FloorFragment

1、Activity的布局如下

RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <fragment android:id="@+id/fgTitle" android:layout_width="match_parent" android:layout_height="45dp" android:name="com.jereh.android.course.fragment.TitleFragment" /> <FrameLayout android:id="@+id/content" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@id/fgTitle" /> <fragment android:id="@+id/floor" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:orientation="horizontal" android:name="com.jereh.android.course.fragment.FloorFragment" /> </RelativeLayout>  復制代碼 2、FloorFragment代碼 復制代碼  public class FloorFragment extends Fragment implements OnClickListener { @Override public void onAttach(Activity activity) { super.onAttach(activity);  } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // TODO Auto-generated method stub View view=inflater.inflate(R.layout.floor_fragment, container,false); LinearLayout home=(LinearLayout)view.findViewById(R.id.home); LinearLayout list=(LinearLayout)view.findViewById(R.id.list); home.setOnClickListener(this); list.setOnClickListener(this); return view; } //定義接口,該接口在Activity中去實現(xiàn),降低Activity與Fragment的耦合度 public interface OnContentFragmentListener{ void setContentFragment(String param); } private OnContentFragmentListener onContentFragmentListener; public void setOnContentFragmentListener( OnContentFragmentListener onContentFragmentListener) { this.onContentFragmentListener = onContentFragmentListener; } @Override public void onClick(View view) { // TODO Auto-generated method stub if(onContentFragmentListener!=null){ switch(view.getId()){ case R.id.home: //回調(diào)機制,調(diào)用實現(xiàn)類的方法 onContentFragmentListener.setContentFragment("主面板Fragment"); break; case R.id.list: onContentFragmentListener.setContentFragment("列表信息"); break; } } } } 3、ContentFragment代碼
public class ContentFragment extends Fragment { private String title; public void setArguments(Bundle args) { title=args.getString("title"); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view=inflater.inflate(R.layout.content_fragment, container,false); if(title!=null)((TextView)view.findViewById(R.id.tvContent)).setText(title); return view; } }

4、DynaFragmentActivity代碼

public class DynaFragmentActivity extends FragmentActivity implements FloorFragment.OnContentFragmentListener { private ContentFragment contentFragment; private FloorFragment floor; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); super.setContentView(R.layout.dyna_fragment_activity); initFragment(); } private void initFragment(){ floor=(FloorFragment)super.getSupportFragmentManager().findFragmentById(R.id.floor); floor.setOnContentFragmentListener(this);//注冊偵聽,傳入實現(xiàn)類對象 contentFragment=new ContentFragment(); FragmentManager fm=super.getSupportFragmentManager(); fm.beginTransaction().add(R.id.content,contentFragment,"content").commit(); }  public void setFragment(Fragment fragment){ getSupportFragmentManager().beginTransaction().replace(R.id.content, fragment).commit(); }  @Override public void setContentFragment(String param) { // TODO Auto-generated method stub Bundle bundle=new Bundle(); bundle.putString("title", param); contentFragment=new ContentFragment(); contentFragment.setArguments(bundle); super.getSupportFragmentManager().beginTransaction() .replace(R.id.content, contentFragment).commit(); }  }

到此,關于“Fragment組件怎么用”的學習就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關知識,請繼續(xù)關注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

網(wǎng)頁題目:Fragment組件怎么用
新聞來源:http://www.rwnh.cn/article26/jicpjg.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、響應式網(wǎng)站、面包屑導航、網(wǎng)站設計、小程序開發(fā)、全網(wǎng)營銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司
瑞丽市| 浑源县| 巢湖市| 射阳县| 赣榆县| 商都县| 泗水县| 林西县| 怀安县| 安义县| 墨江| 友谊县| 谢通门县| 蕲春县| 汝城县| 武宁县| 莱西市| 安吉县| 太原市| 南投县| 太白县| 沽源县| 岳西县| 江川县| 满洲里市| 商城县| 阿克苏市| 潞西市| 无棣县| 锡林浩特市| 廉江市| 沈丘县| 巴里| 宜川县| 开鲁县| 柳江县| 北辰区| 阿瓦提县| 嘉鱼县| 西林县| 大同市|