2013-06-13 58 views
1

我在我的應用程序中使用滑動菜單庫。 滑動菜單是一個片段。更改片段的滑動菜單

藍色部分是打開時的滑動菜單。

紅色部分是靜態的,它不會改變,它是主要的btw活動。 黃色部分是用戶單擊滑動菜單項時更改的片段。

problem with sliding menu and fragments

這裏的時候我實現它出了什麼問題:

在滑動菜單片段,我聽的OnItemClick事件,我創建取決於項目的位置點擊一個新片段。 之後,我用該片段替換黃色框架ID。

 @Override 
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, 
      long arg3) { 
     FragmentManager manager = getFragmentManager(); 
     FragmentTransaction transaction = manager.beginTransaction(); 
     Fragment frag = null; 
     switch (arg2) { 
     case 1: 
      frag = new ExpFragment(); 
      break; 

     case 2: 
      frag = new FormFragment(); 
      break; 

     case 3: 
      frag = new CompFragment(); 
      break; 

     default: 
      frag = new ContactFragment(); 
      break; 
     } 
     transaction.replace(R.id.fragment, frag); 
     transaction.commit(); 
    } 

看起來不錯吧?那麼,不。這是我得到的logcat異常。

06-13 09:28:29.739: E/AndroidRuntime(15422): java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first. 

所以,如果有人有線索,或者可以告訴我該看什麼,那太棒了!藍色不得不改變黃色。給我一個例外。

感謝,

編輯:佈局文件: 的activity_main:https://gist.github.com/dommerq/5771887 一個片段項目例如:https://gist.github.com/dommerq/5771892

+0

嗯看起來確定...也許張貼您的佈局呢? –

+0

更新了我的問題(請參閱編輯)! :) –

+1

和片段代碼本身? –

回答

1

答案在我的片段java代碼。

我:

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
    View v = inflater.inflate(com.quentindommerc.flatme.R.layout.f_contact, container); 
    return v; 
} 

我應該有:

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
    View v = inflater.inflate(com.quentindommerc.flatme.R.layout.f_contact, container, false); 
    return v; 
} 

因此,基本上,在充氣的方法,把 「假」 作爲第三個參數。

編輯:更正拼寫錯誤。

+0

確切地說,想要確定你在回答之前已經有了:)好,你發現自己:) –

+0

@Quentin我在我的項目中使用它。我問我是否在我的一個片段中從另一個片段中創建了另一個DrawerLayout,並且我想在其他片段中禁用它。完全像這個https://play.google.com/store/apps/details?id=com.wunderkinder.wunderlistandroid ..你能幫我嗎? – Eman87