不能找到代码改变片段

问题描述:

我正在从我的应用程序几周后开始工作。现在我指出了错误,如果我旋转我的设备,它总是将我的片段替换为“Home-Fragment”..我不知道为什么。我正在使用Android Studio中的“在路径中查找”功能进行搜索。我搜索的关键词,如:不能找到代码改变片段

-orientation

-setOrientation

-Landscape

-Portrait

但没有找到该代码段,其变化对旋转我的片段...... 任何tipps?我如何找出“片段替换”被调用的地方?

+0

你可以把一些代码,所以我们可以看到,请:)?当您旋转设备时,活动会因其生命周期方法而被破坏并再次创建。你希望它有肖像和风景布局吗? – SmiffyKmc

+0

当您旋转设备时,活动再次启动。因此,您的活动中的第一个片段将重新加载,即HomeFragment。 – activesince93

+0

提示:请上传有问题的错误(如有)的相关代码。 – Arjun

android:configChanges="orientation|screenSize"添加到您活动的清单中。这会阻止您的活动在方向更改后重新创建视图。

正确的代码初始化“家庭片段”是这样的:

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

谢谢。这对我有很大的帮助。 也许是这个原因吧!即时尝试它现在。 –