模拟器旋转后布局改变,但实际设备没有改变

3
当手机的屏幕方向为竖直时,我需要在RecyclerView中显示2列,在水平时显示4列。在模拟器上可以正常工作。
这是竖直方向下的RecyclerViewenter image description here 将模拟器旋转后: enter image description here 如您所见,有一个刷新按钮。点击后,我们会在屏幕上看到4列: enter image description here 但是当我在我的手机上运行项目时,没有出现刷新按钮,并且在水平方向下只能看到2列。
以下是代码的一部分:
@Override
public void onConfigurationChanged(Configuration newConfig){
    super.onConfigurationChanged(newConfig);
    if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE){
        previewImages.setLayoutManager(new GridLayoutManager(this, 4));
    }
    else {
        previewImages.setLayoutManager(new GridLayoutManager(this, 2));
    }
}

我在清单中添加了这行:

android:configChanges="orientation"

那么,问题出在哪里,我该怎样解决呢?

当您旋转设备时,onConfigurationChanged是否被调用?请通过调试进行检查。 - V-rund Puro-hit
检查设备是否启用了自动旋转。 - Antoine El Murr
尝试使用 android:configChanges="orientation|screenSize",并检查自动旋转是否开启 :D - V-rund Puro-hit
请查看此问题:https://dev59.com/AW035IYBdhLWcg3wGMLa。 - V-rund Puro-hit
1个回答

1

你能否像这样更改onConfigurationChanged方法中的代码块。也许可以帮助。

new GridLayoutManager(context, 1, GridLayoutManager.HORIZONTAL, false)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接