2016-11-02 73 views
1

,當用戶點擊在導航視圖中的第一項下面的片段將被完成之後是可見第一個片段甚至交易第二片段

android.support.v4.app.FragmentManager fm   = getSupportFragmentManager(); 
       Dashboard        newFragment = (Dashboard) fm.findFragmentByTag("viewAlbum"); 
       if (newFragment == null) { 
        newFragment = new Dashboard(); 
       } 
       fm.beginTransaction() 
         .replace(R.id.content_frame, newFragment, "viewAlbum") 
         .show(newFragment) 
         .commitAllowingStateLoss(); 
       supportInvalidateOptionsMenu(); 

當用戶點擊第二項下面的片段將被加載在導航視圖中。

android.support.v4.app.FragmentManager fm   = getSupportFragmentManager(); 
      AssigneewiseFragment     newFragment = (AssigneewiseFragment) fm.findFragmentByTag("viewSelectedPlaylist"); 
      if (newFragment == null) { 
       newFragment = new AssigneewiseFragment(); 
      } 
      fm.beginTransaction() 
        .add(R.id.content_frame, newFragment, "viewSelectedPlaylist") 
        .show(newFragment) 
        .addToBackStack(null) 
        .commitAllowingStateLoss(); 

的問題是,當用戶點擊在導航視圖中的第二項,所述assigneewise片段被加載,但仍是第一片段是第二個片段下面可見的。我怎樣才能解決這個問題?而不是

+1

如果是第二個片段,則使用add()。嘗試替換()。 – Karan

+0

你有兩個片段加載框架,並沒有設置任何背景assigneewiseFragment。在爲受讓人片段的主佈局設置一些背景之後,它將覆蓋第一個片段。 –

+0

再次使用replace()會導致第一個片段中的視圖在第二個事務中變得遲緩 –

回答

1

我不認爲更換()將解決您的問題

爲您需要設置背景顏色爲白色或任何東西,你需要使用點擊監聽器在你的主要佈局上。

+0

設置背景顏色沒有鍛鍊。如果被替換的背景上有任何元素具有Click監聽器,那麼即使您使用了新監聽器,仍然可以單擊並觸發它們。 –

+0

我的意思是使用應該工作的空白監聽器。 –

+0

謝謝,,, ... –

1

使用replaceadd

android.support.v4.app.FragmentManager fm   = getSupportFragmentManager(); 
      AssigneewiseFragment     newFragment = (AssigneewiseFragment) fm.findFragmentByTag("viewSelectedPlaylist"); 
      if (newFragment == null) { 
       newFragment = new AssigneewiseFragment(); 
      } 
      fm.beginTransaction() 
        .replace(R.id.content_frame, newFragment, "viewSelectedPlaylist") 
        .show(newFragment) 
        .addToBackStack(null) 
        .commitAllowingStateLoss(); 
+0

使用replace()第一個片段中的視圖在第二個事務中會滯後 –

+0

粘貼容器的xml 。你是否使用framelayout作爲容器? –

+0

容器是RelativeLayout –