android - 一个视图内的多个回收视图(gridlayout 和水平线性布局)
问题描述
我正在努力实现这一目标:
首先,我尝试将我所有的 recyclerviews(使用 WRAP_CONTENT)放在一个nestedscrollview 中。这行得通,但性能很糟糕。然后我尝试为我的 recyclerviews 设置一个高度,这好多了(尤其是第一个 gridlayout 和水平线性布局加载得非常快),但动态“类别”部分仍然存在问题。
现在我正试图将我所有的 recyclerviews 放在具有不同视图类型的单个 recyclerview 中。因为这是一个相当大的问题(我需要重构很多代码,因为我已经将屏幕截图中的每个区域都放到了一个片段中,现在我需要将所有代码放在一个适配器中)我想问我是否真的可以期望从中获得任何收益,因为最终它又是一个“nestedscrollview”(由我自己制作,但是......)。或者,如果有其他“最佳实践”方式来实现这种布局。
谢谢
编辑:正如预期的那样,这也没有成功。当仅将前两个回收视图添加为视图类型时,它会平滑滚动和加载。但是,一旦我尝试添加类别项目(在类别下方),我就会注意到滞后,尤其是在选择多个类别并快速向上滚动时,会出现明显的滞后。我想我将不得不改变我的布局并将类别选择部分移动到一个单独的视图中,只需要提出一个用户友好的解决方案。但是,在我看来,布置多张桌子的这种微不足道的任务在 android 上是如此的痛苦,这实在是令人失望。
解决方案
我没有设法让它与标准的android东西一起工作。
现在我正在使用airbnb 的环氧树脂,并且我已将所有视图从 nestedscrollview 转换为环氧树脂 recyclerview。它是一个很棒的图书馆,airbnb 也使用它来表达他们的所有观点。
尽管如此,令人遗憾的是,android 开发团队没有解决这个问题并提供解决方案,除了“不要嵌套多个滚动到同一方向的滚动视图(recyclerviews)”的信息。
推荐阅读
- javascript - Angular-FormArray:从二维 Javascript 数组创建表格
- python-3.x - 将升高的位置转换为二进制
- angular - 如何使用可变长度更新 FormArray 值
- c# - 如何将视图数据传递给 Asp.net 核心中的部分视图?
- generics - VHDL 在端口规范中使用依赖的泛型类型
- python - 在用户已经登录的情况下,在 PasswordResetView 中限制对 Django 的 reset_password 形式的访问
- c# - 将 Xamarin.Forms.Image 转换为字节数组
- android - 带有图像的 Android 列表视图
- php - 如何通过推荐发出 fopen 远程请求?
- model-view-controller - 为什么我们不在 MVC 模型中嵌入认证(授权)逻辑?