Fragment 使用 replace 的方式实现切换 以及切换的时候Fragment 生命周期
生活随笔
收集整理的這篇文章主要介紹了
Fragment 使用 replace 的方式实现切换 以及切换的时候Fragment 生命周期
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
這個(gè)主要代碼在activity里面 如下
public class ReplaceActivity extends AppCompatActivity implements View.OnClickListener {private HpFragment hpFragment;private FilmFragment filmFragment;private TextView hpText;private TextView filmText;@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.replace_activity_layout);hpText = findViewById(R.id.hp_text);hpText.setOnClickListener(this);filmText = findViewById(R.id.film_text);filmText.setOnClickListener(this);initTab(0);}private void initTab(int i) {//開(kāi)啟事務(wù),fragment的控制是由事務(wù)來(lái)實(shí)現(xiàn)的FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();clearSelection();switch (i) {case 0:hpText.setTextColor(Color.RED);if (hpFragment == null) {hpFragment = new HpFragment();}transaction.replace(R.id.content, hpFragment);break;case 1:filmText.setTextColor(Color.RED);if (filmFragment == null) {filmFragment = new FilmFragment();}transaction.replace(R.id.content, filmFragment);break;}transaction.commitAllowingStateLoss();}private void clearSelection() {hpText.setTextColor(Color.BLACK);filmText.setTextColor(Color.BLACK);}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.hp_text:initTab(0);hpText.setTextColor(Color.RED);filmText.setTextColor(Color.BLACK);break;case R.id.film_text:initTab(1);hpText.setTextColor(Color.BLACK);filmText.setTextColor(Color.RED);break;}}
}
fragment 的生命周期,當(dāng)?shù)谝淮芜M(jìn)來(lái)的時(shí)候默認(rèn)fragment的生命周期
當(dāng)切換fragment 新的fragment 的生命周期和上一個(gè)幾面的第一次進(jìn)來(lái)的時(shí)候相同都會(huì)onAttach到onResume
切換之后的fragment的生命周期
總體來(lái)說(shuō)就是fragment 使用replace 來(lái)切換的時(shí)候使用 顯示的時(shí)候會(huì)onAttach到onResume ,切換之后會(huì)onPause 到 onDetach
demo 地址
?
?
?
總結(jié)
以上是生活随笔為你收集整理的Fragment 使用 replace 的方式实现切换 以及切换的时候Fragment 生命周期的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 英雄的黎明是谁写的呢?
- 下一篇: ViewPager 实现界面加载不同的数