1.静态绑定
fragment的创建:
android studio创建fragment
修改成如下(为生命周期而创建)
public class BlankFragment extends Fragment {
private static final String TAG = "BlankFragment";
@Override
public void onAttach(@NonNull Context context) {
super.onAttach(context);
Log.d(TAG, "onAttach: ");
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d(TAG, "onCreate: ");
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
Log.d(TAG, "onCreateView: ");
View view=inflater.inflate(R.layout.fragment_blank,container,false);
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
Log.d(TAG, "onActivityCreated: ");
}
@Override
public void onStart() {
super.onStart();
Log.d(TAG, "onStart: ");
}
@Override
public void onResume() {
super.onResume();
Log.d(TAG, "onResume: ");
}
@Override
public void onPause() {
super.onPause();
Log.d(TAG, "onPause: ");
}
@Override
public void onStop() {
super.onStop();
Log.d(TAG, "onStop: ");
}
@Override
public void onDestroyView() {
super.onDestroyView();
Log.d(TAG, "onDestroyView: ");
}
@Override
public void onDestroy() {
super.onDestroy();
Log.d(TAG, "onDestroy: ");
}
@Override
public void onDetach() {
super.onDetach();
Log.d(TAG, "onDetach: ");
}
}
在主界面中加入fragment
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".StaticInflateFragmentActivity"
android:orientation="horizontal">
<fragment
android:layout_weight="1"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:id="@+id/fragment1"
android:name="com.lapian.examplefragment.BlankFragment"/>
<fragment
android:layout_weight="1"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:id="@+id/fragment2"
android:name="com.lapian.examplefragment.BlankFragment2"/>
</LinearLayout>
不用在mainActivity上写代码,就可以了
2.动态绑定
代码:
FragmentManager supportFragmentManager = getSupportFragmentManager();//获取支持fragment的管理者
FragmentTransaction fragmentTransaction = supportFragmentManager.beginTransaction();//管理者开始运输
Fragment fragment1=new BlankFragment();
fragmentTransaction.add(R.id.fragment_container,fragment1);//运输添加到容器
fragmentTransaction.commit();//提交
xml布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".DynamicInflateFragmentActivity"
android:orientation="vertical">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/fragment_container"/>
</LinearLayout>
3.生命周期
运行起来的结果
图解:左边是activity的生命周期,右边是fragment的生命周期