Şu anda parçamı eklemek için kullanıyorum "RELATIVE_LAYOUT" konteyneri var. Parçacık XML düzenini RelativeLayout kapsayıcısına yüklemek için OnClickListener bir düğmeyi kullanıyorum.Düğme Üzerine Parça Ekleme/Kaldırma Nasıl Tıklanır?
Neyi başarmak istediğim, düğmeye bir kez bastığımda, parçanın yüklenmesi gerektiğidir ... ve tekrar bastığımda, parça kaldırılmalıdır. Parçanın yüklü olup olmadığını belirlemek için tamsayı kullanmayı denedim, ancak başarısız oldu. Herhangi bir yardım takdir ...
KODU:
public class MainActivity extends Activity {
Button B1,B2;
int boolb1=0, boolb2=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
B1 = (Button)findViewById(R.id.btn1);
B2 = (Button)findViewById(R.id.btn2);
B1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
FragmentManager fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
FragmentOne f1 = new FragmentOne();
if(boolb1==0)
{ft.add(R.id.frg1, f1);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
boolb1=1;}
else
{ft.remove(f1);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_CLOSE);
boolb1=0;}
//ft.addToBackStack("f1");
ft.commit();
}
});
B2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
FragmentManager fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
FragmentTwo f2 = new FragmentTwo();
if(boolb2==0) {
ft.add(R.id.frg2, f2);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
boolb2=1;
} else {
ft.remove(f2);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_CLOSE);
boolb2=0;
}
//ft.addToBackStack("f2");
ft.commit();
}
});
}
Evet, sadece daha iyi bir yaklaşım tamamen kaldırmak olduğunu eklersiniz değişkeni "ekledi" ve sadece fragmanı yöneticisinde parçaların presention ile karar .. Bu durumda, ekranın – Billda
dönmesinden sonra geri yükleme durumuyla daha az çalışacaksınız. Doğru, kodu değiştirdim :) –
Mükemmel cevap ... Şüphesiz, ilk kez düğmeye bastığımda, java bir nesne oluşturur. FragmentOne f1 ve findFragmentByTag tarafından döndürülen değeri iletir, ancak "etiket" etiketi, if bloğunda bunu yaptığımızdan beri herhangi bir parçayla henüz ilişkilendirilmez. Yani, bu bir hata oluşturmamalıdır ??? – Abhi9