我正在开发一个功能,可以在列表布局和显示数据的网格布局之间切换。与Google Drive应用程序在Android和iOS平台上都有类似的东西。我特别喜欢在iOS版本的应用程序中进行过渡的动画,其中项目被移动到新的位置并调整大小而不是仅仅出现在那里。
我想到的一个解决方案是拥有一个具有ListView和GridView功能的自定义ViewGroup,并根据将从客户端代码设置的标志使用一个或另一个。这样,当我在切换到新布局后即将绘制新项目时,我会知道一个布局中的项目位置。
我想知道的一件事是,如果使用来自KitKat的新转换框架的功能没有更直接的解决方案,因为基本上我可以在片段中重复使用加载的数据,只需在ListView和GridView之间切换。但我所知道的不会立即导入过渡动画。
答案 0 :(得分:1)
首先,GridLayout
和GridView
是两回事。后者是你感兴趣的。其次,我认为Drive应用程序只使用GridView而不是List + Grid的组合。
在GridView中,您可以将列数设置为1,然后它就像ListView一样。
为重新安排制作动画:
你需要存储可见孩子的坐标 更新前的GridView发生。
发布更新后,将其移至旧坐标。
然后将其位置转换为(0,0)。在这里,0,0是他们的 相对于自我立场,这意味着他们的实际位置。