使用具体套路如下:
全局中声明几个变量:
private ArrayList<Fragment> frags = new ArrayList<Fragment>();
private FragmentManager manager;
接着在onCreate函数如下:
frags.add(new HomeFragment());
frags.add(new ModelFragment());
frags.add(new PlanFragment());
frags.add(new DataFragment());
frags.add(new MyFragment());
// 下面是刚进入场景时,默认加载的是哪个碎片
manager = getFragmentManager();
FragmentTransaction tran = manager.beginTransaction();
tran.add(R.id.frame,frags.get(i), "this"); //碎片替换场景中的View
tran.commit();
下面是GridView的Item点击事件如下,以实现点击后切换碎片
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
FragmentTransaction tran = manager.beginTransaction();
tran.replace(R.id.frame, frags.get(position));
tran.commit();
}
布局文件如下:
<?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" >
<FrameLayout
android:id="@+id/frame"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1" />
<GridView
android:id="@+id/grid"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#ffffff"
android:numColumns="5" />
</LinearLayout>
FR:海涛高软(QQ技术群:386476712)