0

我有一個應用程序,我交換了兩個碎片。這些片段位於LinearLayout中。在linearlayout下面,我有圖標(ImageViews),當點擊時隱藏或顯示適當的片段。當應用第一次加載時,一切都很好。在我退出我的應用程序並使用其他應用程序後,返回到我的應用程序片段不會隱藏/顯示當我單擊圖標(ImageView)。這是怎麼回事?它與活動生命週期有關嗎?Android碎片不能隱藏

xml_layout:

 <LinearLayout 
       android:id="@+id/Linearlayout" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       > 


      </LinearLayout> 









    onCreate() 
    { 
      ft = this.getSupportFragmentManager() 
        .beginTransaction(); 
      frag1= new Frag1(); 
      frag2= new Frag2(); 
      ft.add(R.id.linearlayout,frag1); 
      ft.add(R.id.linearlayout, frag2); 
      ft.hide(frag1).show(frag2); 
      ft.commit(); 



      icon1.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 


       ftt = MainActivity.this.getSupportFragmentManager() 
         .beginTransaction(); 
       ftt.hide(frag2).show(frag1); 

       ftt.commit(); 
      } 
     }); 


    } 
+0

顯示圖片代碼點擊 – vinitius 2015-02-11 21:50:35

+0

@ vinitius我已發佈它 – 2015-02-11 21:54:20

回答

0

我覺得你的問題是在這條線:

ft.hide(frag2).show(frag2); 

要隱藏​​並顯示frag2

ft.hide(frag1).show(frag2); 
-1

是,答案涉及到活動週期。你需要重寫onCreateView,並把onClickListener放在裏面。 onCreate只在第一次創建活動時被調用。之後立即調用OnCreateView,但當您從其他活動返回時將活動重新置於前面時,也會調用OnCreateView。

+0

圖標不是片段的一部分,它們是活動佈局 – 2015-02-11 23:37:10

+0

Sara的一部分,我編輯了我的評論以將'fragment'更改爲'活動。'但我對生命週期的評論就是這樣。只有在第一次創建活動時,OnCreate纔會被調用,或者當它被重新創建時被取消銷燬。當你移動到另一個應用程序時,你的活動不一定被Android銷燬,它被放在堆棧上,並且由於內存不足而在必要時被銷燬。你的onClickListener需要在另一個方法中,當你的活動再次可見時,這個方法將被調用。 – 2015-02-12 00:09:36