更改片段(子片段)时 RecyclerView 中的奇怪叠加
Posted
技术标签:
【中文标题】更改片段(子片段)时 RecyclerView 中的奇怪叠加【英文标题】:weird overlay in RecyclerView when changing fragments (child frags) 【发布时间】:2021-09-10 05:06:50 【问题描述】:编辑 1:recyclerview 具有固定大小(300x500dp),这是因为我想检查叠加层是适用于 RecyclerView 还是整个 ViewGroup
我遇到了片段和布局的问题,基本上我的应用使用子片段; 这是粗略的层次结构:
Activity
|-> FrameLayout (MainFragment, RootView: CoordinatorLayout)
|-> FrameLayout (ChildFragment, RootView: RelativeLayout)
| |-> RecyclerView
|-> LinearLayout (CustomSearchView)
| |-> CardView
|-> BottomAppBar
| |-> BottomNavigationView
|-> FloatingActionButton
这里是代码的要点:https://gist.github.com/AwaisKing/12df079991558257307f40c8fa6a7d2d
我正在尝试 replace
和 addToBackStack
一个片段,但每当我这样做时,它都会在 RecyclerView
上应用一个光覆盖
我尝试将background
s 添加到布局和视图中,但我没有运气。
我希望有人可以帮助我解决这个问题
【问题讨论】:
您能否更简洁地了解每个布局包含的内容? 我马上编辑层次结构 你需要解释什么是“光覆盖”,并展示一些布局和代码。您的“粗略层次结构”不是我们开发 android 应用程序的方式。 @dominicoder 看到列表视图了吗?它会改变背景颜色,如果我将背景设置为任何其他颜色,它会在背景上添加新的色调或其他东西。 检查项目视图的布局、您的应用主题,和/或在 recyclerview 上将 focusable 设置为 false(看起来它正在获得焦点)。 【参考方案1】:有些地方你使用了 CoordinatorLayout,这基本上是一个 FrameLayout,所以如果你没有正确配置它,视图会被覆盖。一目了然,它们是frag_main.xml
、int_frag_search.xml
还有一件事,我认为你应该只在确实需要时才使用子片段
【讨论】:
nvm 实际上是焦点突出问题,感谢@dominicoder【参考方案2】:感谢@dominicoder 帮助我解决了这个问题! comment #120480134
有一个属性android:defaultFocusHighlightEnabled
我所要做的就是将它设置为false
【讨论】:
以上是关于更改片段(子片段)时 RecyclerView 中的奇怪叠加的主要内容,如果未能解决你的问题,请参考以下文章
当sqlite android片段中的数据更改或删除时如何刷新recyclerview?
在recyclerview片段Reandroid中屏幕旋转后进度条不显示
如何在单击 RecyclerView 项目时从一个片段移动到另一个片段