2015-11-03 50 views
-1

我正在從我的應用程序幾周後開始工作。現在我指出了錯誤,如果我旋轉我的設備,它總是將我的片段替換爲「Home-Fragment」..我不知道爲什麼。我正在使用Android Studio中的「在路徑中查找」功能進行搜索。我搜索的關鍵詞,如:不能找到代碼改變片段

-orientation

-setOrientation

-Landscape

-Portrait

但沒有找到該代碼段,其變化對旋轉我的片段...... 任何tipps?我如何找出「片段替換」被調用的地方?

+0

你可以把一些代碼,所以我們可以看到,請:)?當您旋轉設備時,活動會因其生命週期方法而被破壞並再次創建。你希望它有肖像和風景佈局嗎? – SmiffyKmc

+0

當您旋轉設備時,活動再次啓動。因此,您的活動中的第一個片段將重新加載,即HomeFragment。 – activesince93

+0

提示:請上傳有問題的錯誤(如有)的相關代碼。 – Arjun

回答

-2

android:configChanges="orientation|screenSize"添加到您活動的清單中。這會阻止您的活動在方向更改後重新創建視圖。

4

正確的代碼初始化「家庭片段」是這樣的:

public class MyActivity extends AppCompatActivity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     if(savedInstanceState == null) { 
      getSupportFragmentManager() 
       .beginTransaction() 
       .replace(android.R.id.content, new HomeFragment()) 
       .commit(); 
     } 
    } 
} 

注意,你只能做的片段交易如果savedInstanceState == null,如果它不爲空,Android和片段框架將自動重新一切。

我敢肯定,你總是用homeFragment更換的原因是因爲你沒有檢查savedInstanceState == null

+0

謝謝。這對我有很大的幫助。 也許是這個原因吧!即時嘗試它現在。 –