android - 转动模拟器后布局发生变化,但不是设备

标签 android android-recyclerview orientation

当方向为纵向时,我需要在 RecyclerView 中显示 2 列,当方向为 land 时,我需要显示 4 列。它在模拟器上工作正常。

enter image description here

它是纵向的 RecyclerView

开启模拟器:

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));
    }
}

我在 list 中添加了这一行:

android:configChanges="orientation"

那么,问题是什么,我该如何解决?

最佳答案

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

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

关于android - 转动模拟器后布局发生变化,但不是设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54921695/

相关文章:

android - 在 native 代码中使用 opencv 进行 Android 应用程序开发

Android Firebase Analytics 事件不显示在控制台上

java - Android - 在单个 RecyclerView 中存储两个数组

orientation - IMU 方向不断变化

ios - iPad 启动屏幕的不同背景图像,用于启动屏幕中的横向和纵向模式。storyboard

android - 如何在android中自定义工具栏上的搜索图标?

android - 如何从 android shrinkResources 中排除资源?

java - 如何修复 "No adapter attached; skipping layout"

java - Recycleview删除数据-显示数据问题

c# - Xamarin Forms - iOS - 根据屏幕方向更改初始屏幕