Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/204.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在RecyclerView上创建前景视图的正确方法_Android_Android Recyclerview - Fatal编程技术网

Android 在RecyclerView上创建前景视图的正确方法

Android 在RecyclerView上创建前景视图的正确方法,android,android-recyclerview,Android,Android Recyclerview,我需要在Android中实现下一个逻辑: 我们有RecyclerView,它有几小时(8.00-17.00,17.00之后我们看到第二天的8.00,因此列表是无限的),应该根据时间添加事件。我使用LinearLayoutManager实现了它,视图持有者是我将事件添加到绝对视图位置的一天)。但我不喜欢这种方式,因为每个项目视图都有点混乱,并且在绘制新项目时列表不会平滑滚动。请帮我找到正确的实现方法。如果滚动不顺畅,那么您的onBindViewHolder可能太重。在这种情况下,没有通用的建议。

我需要在Android中实现下一个逻辑:


我们有RecyclerView,它有几小时(8.00-17.00,17.00之后我们看到第二天的8.00,因此列表是无限的),应该根据时间添加事件。我使用LinearLayoutManager实现了它,视图持有者是我将事件添加到绝对视图位置的一天)。但我不喜欢这种方式,因为每个项目视图都有点混乱,并且在绘制新项目时列表不会平滑滚动。请帮我找到正确的实现方法。

如果滚动不顺畅,那么您的
onBindViewHolder
可能太重。在这种情况下,没有通用的建议。您需要运行
androidstudio->androidmonitor->CPU->Start Method Tracing
,并分析创建日视图的实际速度。然后优化该部分


还要仔细检查UI线程中是否没有运行任何磁盘或数据库访问代码。将其移动到一个单独的线程。

如果滚动不顺畅,则可能是您的
onBindViewHolder
太重。在这种情况下,没有通用的建议。您需要运行
androidstudio->androidmonitor->CPU->Start Method Tracing
,并分析创建日视图的实际速度。然后优化该部分


还要仔细检查UI线程中是否没有运行任何磁盘或数据库访问代码。将其移动到一个单独的线程。

如果必须实现此功能,我将创建一个自定义的
视图
,并使用canvas draw*方法呈现UI。这是更多的代码,你必须做自己的触摸处理,但也解决了很多问题,如滚动性能。这是一个值得考虑的选项。你可以考虑寻找一个满足你需要的库(或者查看他们的代码,看看他们是如何做到的并适应它)。遇到一个库,其中的屏幕截图与您提供的图像相似。如果必须实现此功能,我将创建一个自定义的
视图
,并使用canvas draw*方法呈现UI。这是更多的代码,你必须做自己的触摸处理,但也解决了很多问题,如滚动性能。这是一个值得考虑的选项。你可以考虑寻找一个满足你需要的库(或者查看他们的代码,看看他们是如何做到的并适应它)。遇到一个库,其中的屏幕截图与您提供的图像相似。