Fragment使用步骤:
定义:
1. 定一个一个用来装载Fragment的帧布局,其他布局也可以
1 2 3 4 5 6 7 |
<FrameLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@id/ms_topbar" android:layout_above="@id/div_tab_bar" android:id="@+id/ms_content"> </FrameLayout> |
2. 在Activity的super.onCreate()前面或后面增加,注意:requestWindowFeature(Window.FEATURE_NO_TITLE); 放在 super.onCreate(savedInstanceState); 前面就可以隐藏 ActionBar 而不报错。
1 |
requestWindowFeature(Window.FEATURE_NO_TITLE); |
3. 创建继承 Fragment类,比如 MsFragment,覆盖 onCreateView()方法,加载当前Fragment对应的Layout布局fg_content(自定义),
使用 inflater.inflate(R.layout.fg_content,container,false); 拿到Fragment布局,然后操作数据,同时返回当前布局。
1 2 3 4 5 6 7 |
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fg_content,container,false); TextView txt_content = (TextView) view.findViewById(R.id.ms_txt_content); txt_content.setText(content); return view; } |
使用:
1. 加入和显示
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
//可定义多个 MsFragment fg1 = null; fManager = getFragmentManager(); ...... //获得FragmentTransaction //FragmentTransaction 只能使用一次,每次使用都要调用 FragmentManager 的 beginTransaction() 方法获得 FragmentTransaction 事务对象 FragmentTransaction fTransaction = fManager.beginTransaction(); if( fg1 == null){ fg1 = new MsFragment("第一个 Fragment"); fTransaction.add(R.id.ms_content,fg1); }else{ fTransaction.show(fg1); } //提交事务 fTransaction.commit(); |
2. 隐藏: fragmentTransaction.hide(fg1);
数据互交: https://www.twle.cn/l/yufei/android/android-basic-fragment-lifetime.html