在滚动视图中回收视图

我有一个应用程序,显示频道列表的电视指南。 我的用户界面是由很多不同宽度的显示电视节目的自定义视图组成的,所有这些自定义视图都被添加到一个水平滚动视图中,该视图被添加到滚动视图中,这样我的视图就可以在二维中左右滚动,下。 这一切都很好,直到我添加了很多的意见,并开始减速非常多。 所以我需要一种方式来回收像listview在scrollview中的意见也许有一个自定义的scrollview这样做,或者有人有一个想法如何做到这一点,奇怪的是scrollview没有像GridView和ListView的适配器备份。

这是我的用户界面的外观

Solutions Collecting From Web of "在滚动视图中回收视图"

我做了类似的事情,只有我的意见没有连接为你的,但他们都是不同的大小。

首先,您需要定义您的整个区域(而不仅仅是查看屏幕)是否具有自定义视图的明确或dynamic数量。

如果你有确定数量的视图和他们的位置,你应该创build他们的位置图与Rect列表(Rect有一个很好的function,不pipe是否属于xy点)。 然后你定义在你的屏幕上可见的最大视图。 为了在没有持续加载的情况下工作,你应该有最大的可见视图+至less有一行的总体对象的边界视图。 毕竟,你应该很容易地拥有你自己的定位系统,你可以在你的屏幕上加载视图+一些开销(目的是让你的用户在滚动至less一段时间的同时平滑过渡),如果你需要在你卸载的同一时间加载一些(读取重用/不处理对象,并创build它们在Scroll事件),并根据您的需要放置它们。

如果你想确定哪些视图应该是可见的,你只需要通过列表,并询问Views Rect是否与要加载的Rect区域相交。

希望这个图像有一点帮助

例

我知道这听起来有点混乱和难以实现,但你没有问一个简单的问题:)希望这可以帮助和享受你的工作。

由适配器备份并回收视图的ScrollView是一个ListView,顶部有一些额外的可选function。

也许你想要一个适配器支持的Horizo​​ntalScrollView? searchHorizo​​ntalListView会给你一些结果,例如: https : //github.com/dinocore1/DevsmartLib-Android 。