android - GridView、GridLayout 和 Recycler View 与 GridLayout 有什么区别?

标签 android android-layout gridview grid-layout android-constraintlayout

我正在开发一个应用程序,我需要像提供的图像这样的布局。

  • 我应该使用哪种布局?为什么?
  • GridView 和有什么区别和 GridLayout ?为什么他们在遗留部分?什么是替代方案和最佳实践?

  • 以下是我需要开发的布局。我可以做到这一点
    布局方式很多,但我需要知道最佳实践。

    enter image description here

    enter image description here

    最佳答案

    我相信我遇到了同样的问题。从上面的谷歌文档网站和这个答案 GridView VS GridLayout in Android Apps ,我有线索了。

  • 当您只想对齐 subview 小部件的位置时,请使用 GridLayout。在这种情况下,不应滚动子级。 Grid Layout 不支持回收,这将废弃不在屏幕上的旧 subview 并回收它们的 View 持有者。你不应该有太多的 subview ,否则会发生 OMM !
  • 如果不是第一种情况,我相信我们应该使用回收站 View 。当您的子项目可能在 10 + 的规模或无法在屏幕上显示时,您最好使用回收站 View 。 GridView 从 API 1 开始可用。如果您尝试单击 GridView 引用指南中的 GridView 指南链接,您将被重定向到 Recycler View 指南网站。在这个网站上,我引用

    • GridLayoutManager arranges the items in a two-dimensional grid, like the squares on a checkerboard. Using a RecyclerView with GridLayoutManager provides functionality like the older GridView layout.

    • StaggeredGridLayoutManager arranges the items in a two-dimensional grid, with each column slightly offset from the one before, like the stars in an American flag.


    Google 还在 https://github.com/android/views-widgets-samples 上提供了用于回收站 View 的示例代码
    这些是我查看的网站:
  • https://developer.android.com/reference/android/widget/GridLayout
  • https://developer.android.com/reference/android/widget/GridView
  • https://developer.android.com/guide/topics/ui/layout/recyclerview
  • https://medium.com/google-developer-experts/android-grid-layout-1faf0df8d6f2
  • 关于android - GridView、GridLayout 和 Recycler View 与 GridLayout 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53562998/

    相关文章:

    android - 如何为每个 Gridview Image 项目动态设置边框

    android - 使用 NEON SIMD 进行短浮点转换和反之亦然

    android - 非市场内容发布

    Android 位图大于 heapSize

    java - 更改 textview 时实现图像更改

    java - 膨胀类 android.support.v7.widget.CardView 时出错

    java - 找不到类错误膨胀类 android.support.design.widget.BottomNavigationView

    android - 为 ExpandableListView 创建布局

    gridview - Ext JS如何告诉PagingToolbar使用父Grid存储?

    c# - Gridview 绑定(bind)到 XML