Recyceler查看设备旋转复制

时间:2017-08-29 19:40:13

标签: android android-fragments android-orientation

在我的应用程序中,片段

中有Recycler视图

当我按照以下步骤操作时,它在Nexus中被复制了  6 5.1.1设备 1)将设备方向更改为横向 2)锁定设备 3)将设备方向更改为纵向 4)解锁设备 现在持续1秒有视图复制

我在片段中有setRetainInstance = true

 getSupportFragmentManager().beginTransaction()
.add(getContentFrame(),fragment,fragment.getClass().getName())
                        .addToBackStack(fragment.getClass().getName())
                        .commit();

用于添加片段

before rotation after rotation

2 个答案:

答案 0 :(得分:0)

你需要使用两件事:

的onSaveInstanceState onRestoreInstanceState

检查Example is here

答案 1 :(得分:0)

这通常在您再次添加片段时发生,尽管它已经存在。

  getSupportFragmentManager().beginTransaction().add(getContentFrame(),fragment,fragment.getClass().getName())
                    .addToBackStack(fragment.getClass().getName())
                    .commit();

我猜你正在调用它两次(一次最初和一次方向更改后),所以你的片段会被添加两次。根据您的实施方式,只需在此致电if (getSupportFragmentManager().findFragmentByTag(YourFragment.class.getName()) == null)之前添加一项检查,如果onCreate(),我们会在检查资料(savedInstanceState == null)。{/ p>