使用 SpannedgridLayoutManager 后,recyclerView 占用了顶部的大量空间

2024-04-07

我想在 recyclerview 的 Spanned GridLayoutManager 中显示列表数据,但是添加辅助类 Spanned GridLayoutmanager 后,在我的 recycleview 中占用了顶部的大量空间

iam 必须尝试使用​​其他 SpannedGridlayout 管理器更改 SpannedGridLayoutManager 类,但顶部的空间尚未解决

val manager = SpannedGridLayoutManager(object : SpannedGridLayoutManager.GridSpanLookup{
            override fun getSpanInfo(position: Int): SpannedGridLayoutManager.SpanInfo {
                // Conditions for 2x2 items
                return if (position % 12 == 0 || position % 12 == 7) {
                    SpannedGridLayoutManager.SpanInfo(2, 2)
                } else {
                    SpannedGridLayoutManager.SpanInfo(1, 1)
                }
            }

        },3/*column*/,1f/*how big is default item*/)

        binding.feedHome.setHasFixedSize(false)
        binding.feedHome.layoutManager = manager
        binding.feedHome.adapter = adapter

这是我的 recycleview 的 xml

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto">

    <androidx.coordinatorlayout.widget.CoordinatorLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">

        <androidx.swiperefreshlayout.widget.SwipeRefreshLayout
                android:id="@+id/swipeRefreshLayout"
                android:layout_width="match_parent"
                android:layout_height="match_parent">

            <androidx.recyclerview.widget.RecyclerView
                    android:layout_width="match_parent"
                    android:id="@+id/feed_home"
                    android:windowSoftInputMode="adjustResize"
                    tools:listitem="@layout/item_feed_home"
                    android:layout_height="match_parent"
                    tools:ignore="MissingConstraints"/>

        </androidx.swiperefreshlayout.widget.SwipeRefreshLayout>



        <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/no_data"
                android:visibility="gone"
                android:text="@string/no_data_mypost"
                android:textAppearance="@style/TextAppearance.AppCompat.Medium"
                android:layout_gravity="center"/>

    </androidx.coordinatorlayout.widget.CoordinatorLayout>

</layout>

这是我的 recyclerview 项目布局

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools">

    <com.google.android.material.card.MaterialCardView
            android:orientation="vertical"
            android:layout_width="match_parent"
            app:cardCornerRadius="8dp"
            app:cardElevation="4dp"
            app:cardMaxElevation="6dp"
            app:strokeWidth="4dp"
            app:cardBackgroundColor="@color/white"
            android:layout_height="match_parent"
            android:background="@color/grey_10"
            android:layout_marginBottom="1.5dp"
            android:layout_marginEnd="1.5dp"
            android:id="@+id/material_global_zona"
            android:layout_marginTop="1.5dp">



        <ImageView
                android:scaleType="fitXY"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:id="@+id/feed_post_image"
                android:src="@drawable/sample_kelinci"
                tools:ignore="MissingConstraints"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintBottom_toBottomOf="parent"/>
        <!--<TextView android:layout_width="match_parent" android:text="0"  android:textAlignment="center" android:textSize="70sp" android:textColor="@color/white" android:textAppearance="@style/TextAppearance.AppCompat.Large" android:id="@+id/count" android:layout_height="wrap_content"/>-->


    </com.google.android.material.card.MaterialCardView>

</layout>

我希望我错过了 SpannedGridLayoutManager 类中的一些更新或修复错误,但我不知道如何解决它

=======编辑======= ~ 通过在 RecyclerView 之前给予 Linearlayout 解决 ~ 不要在项目 RecyclerView 的 Rootlayout 中提供 Padding 或 Margin


尝试包裹你的RecyclerView里面一个LinearLayout:

...

    <androidx.swiperefreshlayout.widget.SwipeRefreshLayout
            android:id="@+id/swipeRefreshLayout"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

        <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent">

            <androidx.recyclerview.widget.RecyclerView
                    android:layout_width="match_parent"
                    android:id="@+id/feed_home"
                    android:windowSoftInputMode="adjustResize"
                    tools:listitem="@layout/item_feed_home"
                    android:layout_height="match_parent"
                    tools:ignore="MissingConstraints"/>

        </LinearLayout>

    </androidx.swiperefreshlayout.widget.SwipeRefreshLayout>

...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 SpannedgridLayoutManager 后,recyclerView 占用了顶部的大量空间 的相关文章

  • 如何在 Android / Java 中获取图像的分辨率

    如何在 Android 中找到任何图像的分辨率 获取存储在磁盘中的图像大小的有效方法 例如获取用户选择上传的图像文件的大小 是使用BitmapFactory Options并设置inJustDecodeBounds为真 这样做你就会获取图像
  • 使用库来维护免费/付费的应用程序版本

    维护免费 付费应用程序版本的共识似乎是使用库 并从每个活动中设置一个标志 以从代码库中获取不同的功能 这有多安全 据我了解 一个人可以root他们的手机 获取APK 并且可以对其进行反编译 即使代码被混淆 也不难看出该应用程序是带有标志的包
  • 将正确的上下文传递给 greendao 的 OpenHelper 构造函数

    如果我理解正确的话 在使用数据库时 我必须执行以下操作 DaoMaster OpenHelper helper new DaoMaster OpenHelper this test db null Override public void
  • Retrofit-2 内容类型问题

    我的 Api 接受 Content Type application json 作为标头 我按照改造文档中所述完美设置了标题 Headers Content Type application json POST user classes C
  • 使用 RecyclerView 适配器在运行时更改布局屏幕

    我有两个布局文件 如下所示 如果列表中存在数据 则我显示此布局 当列表为空时 我会显示此布局 现在我想在运行时更改布局 当用户从列表中删除最后一项时 我想将布局更改为第二张图片中显示的 空购物车布局 In getItemCount Recy
  • Firestore - RecycleView - 图像持有者

    我不知道如何编写图像的支架 我已经设置了 2 个文本 但我不知道图像的支架应该是什么样子 你能帮我告诉我图像的文字应该是什么样子才能正确显示吗 holder artistImage setImageResource model getArt
  • 以编程方式更新 Android 中的联系人姓名和电话号码

    我创建一个应用程序来读取 更新 删除联系人详细信息 这是更新联系人姓名和电话号码的问题 有人可以帮助我吗 我该怎么做 我正在使用以下代码 但它不起作用 Override public View onCreateView LayoutInfl
  • 尝试在模拟器上安装第二个 flutter 应用程序时出错

    我创建了一个简单的 flutter 应用程序并在 android 模拟器上运行它 效果还不错 现在我创建了另一个 当我尝试在模拟器上运行它时 我得到 Error ADB exited with exit code 1 adb failed
  • 如何强制从本机代码打开 Android 软键盘?

    我有一个游戏 当用户触摸屏幕时 它使用从 C 到 Java 的回调来强制打开软键盘 Java代码很简单是这样的 this inputMethodManager toggleSoftInput InputMethodManager SHOW
  • 如何将 android.net.Uri 转换为 java.net.URL? [复制]

    这个问题在这里已经有答案了 有没有办法从Uri to URL 我正在使用的库需要这个 它only接受一个URL但我需要在我的设备上使用图像 如果该方案的Uri is http or https new URL uri toString 应该
  • 如何防止布局的方向改变,而不是整个屏幕/活动的方向改变

    我需要一个子布局 可以是任何布局 例如FrameLayout or RelativeLayout 忽略方向变化并始终保持横向 但不是它的父级或任何其他兄弟布局 视图 它们应该相应地改变它们的方向 因此 我不能使用setRequestedOr
  • 从 TextView 中显示的数字中删除小数点[重复]

    这个问题在这里已经有答案了 对于我的简单计算器 我将结果显示在TextView 但它总是显示小数 我怎样才能删除它们 这是我的代码 public class MainActivity extends Activity implements
  • onClick 未在带有子项的 LinearLayout 上触发

    我有一个自定义的 LinearLayout 和一个较小的 TextView 子级 我希望能够单击 TextView 未覆盖的区域 因此我将 clickable true 和 onclicklistener 设置为 LinearLayout
  • Android - 如何更改 TimePicker 中的文本颜色?

    我正在使用 TimePicker 到 LinearLayout 中 背景颜色 黑色 但是 我看不到 TimePicker 中的数字 并且我需要在布局中将背景颜色设置为黑色 如何更改 TimePicker 中的 textColor 我已经尝试
  • 在Android Studio中更改项目主题?

    我使用浅色主题创建了一些项目 现在我想将其更改为深色 但我不知道该怎么做 顺便说一句 我不是问如何在代码中做到这一点 只是问如何更改项目的默认主题 在 AndroidManifest xml 的 application 标签下 您可以设置您
  • NoClassDefFoundError:无法解析:Landroid/support/v7/appcompat/R$styleable

    新手尝试完成 Google 提供的我的第一个应用程序教程 在这个致命异常的过程中 我确实导入了很多随机包来消除许多事情的 无法解析 错误 例如 ActionBarActivity EditText Fragment LayoutInflat
  • 将图像添加到自定义 AlertDialog

    我制作了一个 AlertDialog 让用户可以从我显示的 4 个选项中选择一个 前 3 个让他们在单击号码时直接拨打号码 第 4 个显示不同的视图 现在看起来是这样的 由于第四个选项的目的是不同的任务 我想让它看起来不同 因为用户可能会感
  • 在 Honeycomb Android 3.0 中显示 Action Bar 菜单项的图标

    我正在使用 Honeycomb android 3 0 开发 Android 应用程序 我正在尝试在 Action Bar 中显示菜单 菜单有一个图标和标题 当我们单击菜单项时 它会以下拉列表的形式显示其项目 它是下拉列表中带有项目名称但不
  • Android AutoCompleteTextView 带芯片

    我不确定我是否使用了正确的词语来描述此 UI 功能 但我已附上我希望在我的应用程序中实现的目标的快照 它由 Go SMS 使用 用户在编辑文本中键入联系人 在用户从完成下拉列表中选择联系人后 该联系人将被插入到编辑文本中 如附图所示 编辑文
  • Android:如何检测手机设置中的语言已更改

    我如何检测我的手机语言是否已更改 例如 Facebook 应用程序将向我们宣布 please wait we preparing your language i used myString Locale getDefault getDisp

随机推荐

  • RxJS (5.0rc4):暂停和恢复间隔计时器

    我正在使用 Rx 来保持动画时钟 每个动画帧都会将间隔刻度映射到该刻度的新值 假设我想暂停动画 最自然的方法是以某种方式暂停时钟接收 然后在稍后恢复它 取消订阅然后重新订阅并不是一个自然的选择 因为这个动画时钟是一个冷可观察的对象 我不想在
  • 如何使用 QtMqtt 和 SSL 执行安全 MQTT?

    我正在尝试使用 QtMQtt 示例项目 simpleclient 但我想执行安全的 MQTT 我该如何处理这个问题 我读过这篇博客 https www qt io blog 2017 08 14 introducing qtmqtt pro
  • 如何区分应用程序退出和系统关闭

    Mac OS X 上的 Java 在 Swing GUI 应用程序中 我想区分应用程序退出和系统关闭 在应用程序退出时 我想显示一个确认对话框 但是当用户选择 系统关闭 时 我只想退出应用程序 因为系统已经出现了一个确认对话框 这在其他平台
  • Python 中的意外列表行为

    我想颠倒一个列表 我成功地做到了 但在工作的过程中我发现了一些奇怪的事情 以下程序按预期工作 但未注释行list reversed i list len list 1 i and 打印 列表 i 评论最后一行当然 导致了改变list 我没看
  • 使用 setInterval() 后出现clearInterval() 未定义错误

    我知道这不应该是内联的 但 YUI 库的对话框迫使我这样做 我的问题是 每当我将鼠标悬停在该 div 上时 左边缘滚动就会激活 但当我将鼠标移出该 div 时 它不会停止 JS 控制台报告 未捕获的引用错误 timerID 未定义 这是代码
  • 如何从 MQTT 生产并在 ActiveMQ 中作为 MQTT 和 JMS 消费

    我有一个设置 其中消息作为 MQTT 生成到 ActiveMQ 我有两个消费者 一个作为 JMS 另一个作为 MQTT 当我将消息作为 JMS 消息发布到主题 foo 时 我在 JMS 和 MQTT 消费者处都收到消息 但是当我在同一主题上
  • make_shared真的比new更高效吗?

    我正在尝试shared ptr and make shared从 C 11 编写了一个小玩具示例来看看调用时实际发生了什么make shared 作为基础设施 我使用 llvm clang 3 0 以及 XCode4 中的 llvm std
  • 共享首选项和微调器不维护状态

    我有一个像这样的旋转器 Spinner 1 final Spinner plan Spinner dialog findViewById R id spinner1 strings getResources getStringArray R
  • Android - 使用外部浏览器在 WebView 中打开目标 _blank 链接

    我建立一个WebView显示一个网站 该网站包含无链接的链接target blank 属性和一些带有它的 我需要打开链接target在外部标准设备浏览器中定义的以及在 WebView 内部没有定义的 我正在使用一个WebViewClient
  • dart 中整数的最大值是多少?

    我到处都找过 但找不到与该主题相关的任何信息 另外 dart 中是否有类似 java 的 Long BigDecimal 数据类型 Dart 2 对于 dart2js 生成的 JavaScript Pixel Elephant 的答案仍然是
  • 在 ruby​​ 中处理大型 CSV 文件 (20G)

    我正在解决一个小问题 并会就如何解决它提供一些建议 给定一个列数和行数未知的 csv 文件 输出包含值的列列表以及每个值重复的次数 不使用任何库 如果文件很小 这应该不是问题 但是当它是几场演出时 我得到 NoMemoryError 无法分
  • 为什么静态方法需要包装到类中?

    对于这个问题的无知性质 我深表歉意 如果有一个简单的答案 只需一个解释链接就会让我非常高兴 经过 6 个月的编程后 我发现静态类对于存储适用于许多不同类的例程有点有用 这是我如何使用静态类的一个简化示例 它是一个用于将文本解析为各种内容的类
  • 如何在 Lighttable 中创建基本的 ClojureScript Hello World 应用程序?

    LightTable 中的文档似乎相当稀疏 我想在 LightTable 中创建一个非常简单的 ClojureScript Web 应用程序作为构建的起点 我让 Clojure 中的 Instarepl 工作正常 然后创建一个名为 dumm
  • 从计算机商店删除证书

    我很难让 powershell 删除意外安装到我们所有 Windows 7 计算机上的计算机商店的证书 作为示例 我提供了证书安装位置的屏幕截图 这不是实际的证书 我们有几百台机器 因此我们希望尽可能自动化地完成此操作 如果有人可以提供一种
  • 请识别此算法:数据流中的概率前 k 个元素

    我记得几年前听说过以下算法 但在网上找不到任何参考 它仅使用 m 个计数器来识别 n 个元素的数据流中的前 k 个元素 或重量级元素 这对于在使用最少内存的情况下查找热门搜索词 网络滥用者等特别有用 算法 对于每个元素 如果该元素还没有计数
  • 加速“最接近”字符串匹配算法

    我目前正在处理一个非常大的位置数据库 并尝试将它们与现实世界的坐标相匹配 为了实现这一点 我下载了地名数据集 https www geonames org export 其中包含很多条目 它给出了可能的名称和纬度 经度坐标 为了尝试加快该过
  • Java 相当于一个类。 == 与 .equals 相同

    我们可以做一个 on a Class变量而不是equals并期望相同的结果 例如 Class clazz xyz Case A if clazz Date class do something Case B if Date class eq
  • jqGrid 传递值到表单编辑

    我有一个 jqGrid 字段 如下所示 colModel name Enabled index Enabled width 45 editable true edittype checkbox editoptions value 1 0 f
  • 安装 laravel --prefer-dist

    我正在他们的网站上关注 Laravel 安装 我遇到了这条线 composer create project laravel laravel prefer dist 现在 到底是什么 prefer dist部分意思是 我在他们的文档中看不到
  • 使用 SpannedgridLayoutManager 后,recyclerView 占用了顶部的大量空间

    我想在 recyclerview 的 Spanned GridLayoutManager 中显示列表数据 但是添加辅助类 Spanned GridLayoutmanager 后 在我的 recycleview 中占用了顶部的大量空间 iam