Fragment基础----创建
1,Fragment的目的及应用场景
fragment 是3.0后引入的类,其字面翻译为“碎片”。
目的是将activity划分成许多单元再进行组合,可以根据不同分辨率屏幕,在不同状态下,灵活创建优化UI并提高复用性。
2,Fragment的创建
第一种方式:通过xml标签创建
step 1:创建fragment类继承fragment关系类,其中导包的时候app包为3.0以后使用,v4包可以向下兼容
step 2:在activity的xml文件中添加fragment标签并添加name属性为fragment全路径
<fragment android:id="@+id/fragment_center" android:name="singleorb.com.fragment.FragmentCenter" android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="5" /> <fragment android:id="@+id/fragment_bottom" android:name="singleorb.com.fragment.FragmentBottom" android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="1" />
step 3:创建fragment类的布局文件,
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="#00ff11"> </LinearLayout>
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="#ff0000"> </LinearLayout>
step 4:并在onCreateView中添加
public class FragmentBottom extends Fragment { @Nullable @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_xml_bottom, container, false); return view; } }
public class FragmentCenter extends Fragment { @Nullable @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_xml_center, container, false); return view; } }
step 5:启动即可看到结果,把activity分成两部分
第二种方式:通过Java代码方式创建
1,只需把第一种方法的fragment标签换成FramLayout去掉name属性
<FrameLayout android:id="@+id/fragment_code_center" android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="5" /> <FrameLayout android:id="@+id/fragment_code_bottom" android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="1" />
2, 然后再在activity中添加相应引入代码即可
/* *java 代码动态添加fragment 需要两个操作对象 * FragmentManager *FragmentTransaction */ //获取FragmentManager实例 FragmentManager fragmentManager = getFragmentManager(); //开启事务 FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); //添加布局文件 fragmentTransaction.add(R.id.fragment_code_center, new FragmentCenter()); fragmentTransaction.add(R.id.fragment_code_bottom, new FragmentBottom()); //提交 fragmentTransaction.commit();
得到的结果和用xml创建的一样,但是用Java代码来创建可以更灵活的使用所以推荐应用Java代码方式创建