通过标签或ID访问片段之间的区别

Jua*_*dez 4 android android-fragments

我知道我可以创建一个片段,并通过标签或ID将其添加。是否可以选择使用其中一个?有什么理由使我我要在另一个上使用?

model = new ModelFragment();

//tag
getSupportFragmentManager().beginTransaction().add(model, "tag").commit();
//id
getSupportFragmentManager().beginTransaction().add( 4, model).commit();
Run Code Online (Sandbox Code Playgroud)

gee*_*aul 5

ID用于静态片段,即您在活动生命周期中不想修改其状态的片段。

要动态添加片段,请使用标签:

android.app.FragmentTransaction ft = getFragmentManager().beginTransaction();
    ft.replace(R.id.fragment_container, fragment, TAG);
    ft.commit();
Run Code Online (Sandbox Code Playgroud)

要在代码中获取片段,请使用类似以下内容的代码:

if(getFragmentManager().findFragmentByTag(TAG)!=null){
      ft.remove(getFragmentManager().findFragmentByTag(TAG));
      ft.commit();  
 }
Run Code Online (Sandbox Code Playgroud)