Android 从framelayout添加和删除具有相同按钮的片段
我是第一次使用碎片的android新手。我正在创建一个应用程序,希望在框架布局上添加碎片。我能够做到这一点,但现在我想要的是删除我通过相同的按钮单击添加的相同碎片,我尝试过,但无法做到。这是我的密码Android 从framelayout添加和删除具有相同按钮的片段,android,xml,Android,Xml,我是第一次使用碎片的android新手。我正在创建一个应用程序,希望在框架布局上添加碎片。我能够做到这一点,但现在我想要的是删除我通过相同的按钮单击添加的相同碎片,我尝试过,但无法做到。这是我的密码 public void onClick(View v) { android.support.v4.app.FragmentManager fragmentManager = getSupportFragmentManager(); if(v.getId() == R.id.cli
public void onClick(View v) {
android.support.v4.app.FragmentManager fragmentManager = getSupportFragmentManager();
if(v.getId() == R.id.clickme){
if(getSupportFragmentManager().findFragmentById(R.layout.fragment_one) != null){
// getSupportFragmentManager().beginTransaction().remove(getSupportFragmentManager().findFragmentById(R.layout.fragment_one)).commit();
Fragment fragment = new FragmenOne();
fragmentManager.beginTransaction().remove(fragment).commit();
}else{
Fragment fragment = new FragmenOne();
// android.support.v4.app.FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.my_frame, fragment)
.commit();
}
}
}
你需要这样做
Fragment f = fragmentManager.findFragmentById(R.id.my_frame);
if(f instanceof FragmenOne) {
FragmenOne oneFragment = (FragmenOne) f;
FragmentTransaction trans = manager.beginTransaction();
trans.remove(oneFragment);
trans.commit();
fragmentManager.popBackStack();
}else{
Fragment fragment = new FragmenOne();
fragmentManager.beginTransaction()
.replace(R.id.my_frame, fragment)
.commit();
}
使用布尔标志来满足您的需求。当您添加片段时,请将其设置为true。