2016-11-02 25 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 –