一,Fragment使用前的准备工作
1,Fragment的页面布局(fragment_view.xml)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:background="#6b473c"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="hello fragment"
android:textSize="30sp"
android:textColor="#f00"
/>
</LinearLayout>
2,创建Fragment类FragmentNow,加载xml布局文件
public class FragmentNow extends Fragment {
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_view, container, false);
return view;
}
}
二,新建Activity并显示Fragment
1,activity布局文件
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="activity"
android:textSize="30sp"
android:textColor="#f00"
android:layout_centerInParent="true"
/>
<FrameLayout
android:id="@+id/contaner"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</RelativeLayout>
2,activity中使用replace方法显示Fragment(还可通过add方法添加显示Fragment)
public class SecendActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
FragmentManager manager = getFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
transaction.replace(R.id.contaner, new FragmentNow());
transaction.commit();
}
}
三,Fragment其它使用方式
1,BaseFragment,管理所有显示的Fragment,每显示一个Fragment就将其添加进回退栈
public class BaseFragment extends Fragment {
public Context mContext;
private FragmentManager manager;
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
mContext = activity;
}
//切换Fragemnt并将Fragment添加到回退栈
public void transFragment(Fragment fragment,String TAG){
manager = this.getFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
transaction.replace(R.id.group, fragment, TAG);
transaction.addToBackStack(MainFragent.TAG);
transaction.commit();
}
//根据TAG查找Fragment
public Fragment findFragment(String TAG){
return manager.findFragmentByTag(TAG);
}
}