【发布时间】:2015-09-07 20:46:27
【问题描述】:
我正在尝试制作一个带有像这样的可滚动列表的 android 应用...
当我在 iOS 中制作这个应用程序时,我使用了 UICollectionView。在 android studio 中制作这个的最佳方法是什么?
我尝试使用列表视图,但似乎无法根据需要对其进行自定义?
有什么想法吗?
【问题讨论】:
标签: android listview android-studio uicollectionview
我正在尝试制作一个带有像这样的可滚动列表的 android 应用...
当我在 iOS 中制作这个应用程序时,我使用了 UICollectionView。在 android studio 中制作这个的最佳方法是什么?
我尝试使用列表视图,但似乎无法根据需要对其进行自定义?
有什么想法吗?
【问题讨论】:
标签: android listview android-studio uicollectionview
ListView 是一个很好的开始方式,它可以根据您的需要进行定制。 但是,我建议使用 RecyclerView,它的工作原理与 ListView 几乎相同,但它是 Android 中的一个较新概念。它为您处理 ViewHolder 模式的使用,让一切变得超级简单。(使用 ListView,您必须实现自己的 ViewHolder 模式)
您需要做的就是在您的活动/片段中使用 RecyclerView 作为保存数据的视图。然后,关键组件是实现 RecyclerView 的适配器,它将处理每个列表项的膨胀和设置。
Here 是一个非常棒的简短教程,可帮助您开始使用 RecyclerView。
如果您已经完成了 Dave Smith 的 here is a bit more advanced video material on RecyclerView,他解释了很多关于如何在您的应用中理解和使用 RecyclerView 的方法。
【讨论】:
由自定义对象的 ArrayAdapter 提供的 ListView 可以完成这项工作。
您可能有一个包含单个项目的文本和图像的类。
然后,您可以使用该类的项目创建一个 ArrayList,并在其中放入所有数据。
这个 ArrayList 可以用作自定义 ArrayAdapter 的数据集,它会覆盖 getView() 方法。
getView() 方法必须为每个项目扩展 xml 布局,并将 ArrayList 中的数据附加到扩展视图。
您可能希望实现 Viewholder 模式以实现良好的性能并避免不必要的膨胀和 getViewByID() 调用。
您还可以使用新的 CardView,它可以让操作变得更容易,因为它是为 android 5 中的新材料设计而制作的,看起来类似于您的项目列表。
【讨论】: