不能找到代码改变片段
问题描述:
我正在从我的应用程序几周后开始工作。现在我指出了错误,如果我旋转我的设备,它总是将我的片段替换为“Home-Fragment”..我不知道为什么。我正在使用Android Studio中的“在路径中查找”功能进行搜索。我搜索的关键词,如:不能找到代码改变片段
-orientation
-setOrientation
-Landscape
-Portrait
但没有找到该代码段,其变化对旋转我的片段...... 任何tipps?我如何找出“片段替换”被调用的地方?
答
将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
谢谢。这对我有很大的帮助。 也许是这个原因吧!即时尝试它现在。 –
你可以把一些代码,所以我们可以看到,请:)?当您旋转设备时,活动会因其生命周期方法而被破坏并再次创建。你希望它有肖像和风景布局吗? – SmiffyKmc
当您旋转设备时,活动再次启动。因此,您的活动中的第一个片段将重新加载,即HomeFragment。 – activesince93
提示:请上传有问题的错误(如有)的相关代码。 – Arjun