-------- Fragment1默认打开,然后再由Activity打开Fragment2
Fragment1
public class Fragment1 extends Fragment { private static final String TAG = Fragment1.class.getSimpleName(); @Override public void onAttach(Context context) { super.onAttach(context); Log.i(TAG, "onAttach: 1111111111111111111111"); } @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.i(TAG, "onCreate: 1111111111111111111111111111"); } @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { Log.i(TAG, "onCreateView: 111111111111111111111111111111"); return inflater.inflate(R.layout.layout_fm1, container, false); } @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); Log.i(TAG, "onViewCreated: 111111111111111111111111111111111"); } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); Log.i(TAG, "onActivityCreated: 111111111111111111111111111111111"); } @Override public void onStart() { super.onStart(); Log.i(TAG, "onStart: 11111111111111111111111111111111111111"); } @Override public void onResume() { super.onResume(); Log.i(TAG, "onResume: 11111111111111111111111111111111111111"); } @Override public void onPause() { super.onPause(); Log.i(TAG, "onPause: 11111111111111111111111111111111111"); } @Override public void onStop() { super.onStop(); Log.i(TAG, "onStop: 1111111111111111111111111111111"); } @Override public void onDestroyView() { super.onDestroyView(); Log.i(TAG, "onDestroyView: 11111111111111111111111111111"); } @Override public void onDestroy() { super.onDestroy(); Log.i(TAG, "onDestroy: 11111111111111111111111111111111"); } @Override public void onDetach() { super.onDetach(); Log.i(TAG, "onDetach: 1111111111111111111111111111"); } }
fragment2
public class Fragment2 extends Fragment { private static final String TAG = Fragment2.class.getSimpleName(); @Override public void onAttach(Context context) { super.onAttach(context); Log.i(TAG, "onAttach: 222222222222222222222222222"); } @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.i(TAG, "onCreate: 22222222222222222222222222"); } @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { Log.i(TAG, "onCreateView: 222222222222222222222222222"); return inflater.inflate(R.layout.layout_fm2, container, false); } @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); Log.i(TAG, "onViewCreated: 222222222222222222222222222222222222"); } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); Log.i(TAG, "onActivityCreated: 222222222222222222222222222222222"); } @Override public void onStart() { super.onStart(); Log.i(TAG, "onStart: 2222222222222222222222222222222222222"); } @Override public void onResume() { super.onResume(); Log.i(TAG, "onResume: 22222222222222222222222222222222222222222"); } @Override public void onPause() { super.onPause(); Log.i(TAG, "onPause: 222222222222222222222222222222222222"); } @Override public void onStop() { super.onStop(); Log.i(TAG, "onStop: 22222222222222222222222222222222222222"); } @Override public void onDestroyView() { super.onDestroyView(); Log.i(TAG, "onDestroyView: 2222222222222222222222222222222222222"); } @Override public void onDestroy() { super.onDestroy(); Log.i(TAG, "onDestroy: 22222222222222222222222222222222"); } @Override public void onDetach() { super.onDetach(); Log.i(TAG, "onDetach: 22222222222222222222222222222222"); } }
fragment1默认打开,然后打开fragment2,最后按底部导航返回键
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.adnonstop.fragmentlifecycler.activity.MainActivity"> <Button android:id="@+id/btn_newfm" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="new fragment" /> <RelativeLayout android:id="@+id/rl_fm_container" android:layout_width="match_parent" android:layout_height="match_parent"> </RelativeLayout> </LinearLayout>
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); } private void initView() { getSupportFragmentManager().beginTransaction().replace(R.id.rl_fm_container, new Fragment1()).commit(); Button btnFM = (Button) findViewById(R.id.btn_newfm); btnFM.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { getSupportFragmentManager().beginTransaction().replace(R.id.rl_fm_container, new Fragment2()).commit(); } }); } }
Fragment的生命周期方法回调
默认打开Fragment1 03-30 13:19:03.281 2355-2355/com.xxx.fragmentlifecycler I/Fragment1: onAttach: 1111111111111111111111 03-30 13:19:03.281 2355-2355/com.xxx.fragmentlifecycler I/Fragment1: onCreate: 1111111111111111111111111111 03-30 13:19:03.282 2355-2355/com.xxx.fragmentlifecycler I/Fragment1: onCreateView: 111111111111111111111111111111 03-30 13:19:03.283 2355-2355/com.xxx.fragmentlifecycler I/Fragment1: onViewCreated: 111111111111111111111111111111111 03-30 13:19:03.283 2355-2355/com.xxx.fragmentlifecycler I/Fragment1: onActivityCreated: 111111111111111111111111111111111 03-30 13:19:03.284 2355-2355/com.xxx.fragmentlifecycler I/Fragment1: onStart: 11111111111111111111111111111111111111 03-30 13:19:03.284 2355-2355/com.xxx.fragmentlifecycler I/Fragment1: onResume: 11111111111111111111111111111111111111 打开Fragment2 03-30 13:19:05.924 2355-2355/com.xxx.fragmentlifecycler I/Fragment2: onAttach: 222222222222222222222222222 03-30 13:19:05.924 2355-2355/com.xxx.fragmentlifecycler I/Fragment2: onCreate: 22222222222222222222222222 03-30 13:19:05.924 2355-2355/com.xxx.fragmentlifecycler I/Fragment1: onPause: 11111111111111111111111111111111111 03-30 13:19:05.924 2355-2355/com.xxx.fragmentlifecycler I/Fragment1: onStop: 1111111111111111111111111111111 03-30 13:19:05.924 2355-2355/com.xxx.fragmentlifecycler I/Fragment1: onDestroyView: 11111111111111111111111111111 03-30 13:19:05.928 2355-2355/com.xxx.fragmentlifecycler I/Fragment1: onDestroy: 11111111111111111111111111111111 03-30 13:19:05.928 2355-2355/com.xxx.fragmentlifecycler I/Fragment1: onDetach: 1111111111111111111111111111 03-30 13:19:05.928 2355-2355/com.xxx.fragmentlifecycler I/Fragment2: onCreateView: 222222222222222222222222222 03-30 13:19:05.928 2355-2355/com.xxx.fragmentlifecycler I/Fragment2: onViewCreated: 222222222222222222222222222222222222 03-30 13:19:05.929 2355-2355/com.xxx.fragmentlifecycler I/Fragment2: onActivityCreated: 222222222222222222222222222222222 03-30 13:19:05.929 2355-2355/com.xxx.fragmentlifecycler I/Fragment2: onStart: 2222222222222222222222222222222222222 03-30 13:19:05.931 2355-2355/com.xxx.fragmentlifecycler I/Fragment2: onResume: 22222222222222222222222222222222222222222 按底部导航返回键 03-30 13:20:53.714 2355-2355/com.xxx.fragmentlifecycler I/Fragment2: onPause: 222222222222222222222222222222222222 03-30 13:20:54.740 2355-2355/com.xxx.fragmentlifecycler I/Fragment2: onStop: 22222222222222222222222222222222222222 03-30 13:20:54.740 2355-2355/com.xxx.fragmentlifecycler I/Fragment2: onDestroyView: 2222222222222222222222222222222222222 03-30 13:20:54.740 2355-2355/com.xxx.fragmentlifecycler I/Fragment2: onDestroy: 22222222222222222222222222222222 03-30 13:20:54.740 2355-2355/com.xxx.fragmentlifecycler I/Fragment2: onDetach: 22222222222222222222222222222222