无法找到更改片段的代码

时间:2015-11-03 10:27:39

标签: android fragment orientation

几个星期后我正在开发我的应用程序。现在我指出了这个错误,如果我旋转我的设备,它总是将我的片段替换为“Home-Fragment”......我不知道为什么。我在Android Studio中使用“find in path”功能进行搜索。我搜索了类似的关键字:

-orientation

-setOrientation

-Landscape

-Portrait

但是没有找到代码片段,它会在轮换时改变我的片段...... 任何提示?我怎样才能找到“片段替换”被调用的位置?

2 个答案:

答案 0 :(得分:4)

初始化“home fragment”的正确代码如下:

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和Fragment框架将自动重新创建所有内容。

我很确定你总是替换homeFragment的原因是因为你没有检查savedInstanceState == null

答案 1 :(得分:-2)

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