几个星期后我正在开发我的应用程序。现在我指出了这个错误,如果我旋转我的设备,它总是将我的片段替换为“Home-Fragment”......我不知道为什么。我在Android Studio中使用“find in path”功能进行搜索。我搜索了类似的关键字:
-orientation
-setOrientation
-Landscape
-Portrait
但是没有找到代码片段,它会在轮换时改变我的片段...... 任何提示?我怎样才能找到“片段替换”被调用的位置?
答案 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"
添加到您活动的清单中。这会阻止您的活动在方向更改后重新创建视图。