首页 > 解决方案 > 如何在用户滚动 RecyclerView 之前修复 RecyclerView 之外的视图错位

问题描述

这是我遇到的问题:https ://imgur.com/a/GKZpdX9

我锚定到布局底部的 AdView 将被稍微拉出位置,并且只有当用户再次滚动 RecyclerView 时才会回到其预期位置。

该活动使用两个片段,一个用于底部的横幅,另一个用于其余视图的顶部,因此当用户单击 ViewHolder 时,上面的片段被替换。

我曾尝试使用 .scrollToView 等方法强制 RecyclerView 移动,但它保留了横幅的错位。只有当用户滚动回到正确的位置时。

我已经检查过,如果用户不是替换上部片段而是被带到不同的活动,然后按下后退按钮,这个问题就不会发生。但我需要使用一个片段。

标签: androidandroid-fragmentsandroid-activityandroid-recyclerview

解决方案


而不是在 Activity 中为横幅创建单独的片段。您应该在您的 fragmentActivity 中使用此代码技术。在活动中对顶视图使用相对布局,然后添加具有特定高度的横幅视图并将 alignParentBottom 设置为 true。然后添加另一个包含您的 recyclerview 片段的布局并设置此属性(layoutAbove 并将 addview id 传递给 id)。它将正好放在横幅的顶部。


推荐阅读