2013-12-12 106 views
0

活動的問題,我對片段的概念在工作我andorid.I添加多個佈局成一個FrameLayout裏,片段點擊機器人

FragmentManager fm = getFragmentManager(); 
FragmentTransaction ft = fm.beginTransaction(); 
ft.addToBackStack("web"); 
ft.setTransitionStyle(FragmentTransaction.TRANSIT_ENTER_MASK); 
Fragment fragment = new TestFragment(); 
ft.setCustomAnimations(R.anim.right_to_left_remove, R.anim.right_to_left_add); 
ft.add(R.id.test, fragment); 
ft.commit(); 

我點擊的片段1的按鈕,上面片段1 fragment2增加,當點擊沒有按鈕的fragement2佈局的相同區域添加另一個片段。 Fragment1按鈕在Fragment2中可點擊,因此片段多次添加。

如何禁用fragment2佈局中的點擊事件?

感謝,

+0

是否有可能添加多個片段成單的FrameLayout使用add方法?? – sd33din90

回答

0

嘗試使用ft.replace代替ft.add

如果你想使用ft.add,在免得刪除舊的片段:

FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); 
ft.add(R.id.main, new Fragment1(), "frag1"); 
ft.add(R.id.main, new Fragment2(), "frag2"); 
ft.commit(); 

// Later on 
FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); 
// Manually remove fragments 
ft.remove(getSupportFragmentManager().findFragmentByTag("frag1")); 
ft.remove(getSupportFragmentManager().findFragmentByTag("frag2")); 
ft.add(R.id.main, new Fragment1(), "newFrag1"); 
ft.commit(); 
+0

當我重複使用具有不同ID的相同片段(比如R.id.test,R.id.test1)時,必須將differents ID發送到fragments.i不想在fragmetns之間發送ID,這就是爲什麼我選擇add方法.. – sd33din90

+0

看看我的編輯。我從來沒有見過有人在不使用remove方法的情況下使用add。 –

+0

請在fragment2佈局中提供禁用單擊事件的建議。爲什麼單擊事件可以多次工作?我需要添加任何東西到片段管理器? – sd33din90