如何为Android应用构建可点击的网格

时间:2018-06-07 00:41:54

标签: android android-layout

我正在建立一个保龄球得分应用程序,因此我的用户将与之交互的视图通常需要是一个他们可以逐个填写得分的网格。

阅读构建此网格的选项,我非常关注最佳解决方案:

  • 网格布局
  • 网格视图
  • Recycler View
  • 其他?

所有三篇文章都出现在我读过的文章中,似乎没有一篇比其他文章更突出:

  • 构建一个统一的网格(列和行的宽度和高度相同,但是 带有双宽列的顶行)
  • 使该网格中的单元格可以打开
  • 之后用数字或“着色”角填充细胞 用户输入他们的回合结果

任何人都可以解释相关的差异是什么,或者是否还有另一种我不知道的方法可能对此有用吗?我是Android的初学者,所以我还在学习。提前谢谢。

1 个答案:

答案 0 :(得分:1)

继续前几个概念:

任何widget / ui组件都是一个视图。布局是一个ViewGroup,它实质上意味着它包含其他视图的视图。可以将其视为包含子视图的容器。 ViewGroup本身是视图的子类,这意味着它具有视图的所有功能以及它自己的一些功能。

现在回到你的问题:

android中的数据视图通常遵循基本模板。他们从源中获取数据并将其加载到适配器中(将其视为原始数据与您在屏幕上看到的内容之间的桥梁)。因此,使用列表适配器填充listView,但listadapter也可用于填充其他类型的视图(在本例中为GridView)。

GridView只是一个基于行/列的视图,这意味着如果你想制作类似记分卡的东西,这将是一个不错的选择。

GridLayout是一种布局,它有一套关于如何在其中排列视图的规则。(例如,在简单的线性布局中,元素应严格安排在一个下面或一个在另一个旁边)。在GridLayout中,元素按行/列排列,但请注意这些是布局中的单个视图元素(想想在空间中分组的多个元素),而gridview是一种单一的(就像在给它数据并显示它一样)。

现在,recyclerview是一个概念,通常在您需要显示相当大量的数据时使用(通常只有当您的数据通常会溢出屏幕时才有意义)。在android中,当您在屏幕上滚动浏览列表时,每次在屏幕上显示时,列表中的视图都会被渲染。加时这是优化的,这样我们就可以回收已经出现在屏幕上的视图,而不是从头开始再次渲染它们。(想想这是一个非常高性能的列表视图)。

至于你的应用程序,我会说使用当前的信息,一个简单的gridview应该工作超级,而不进入回收站视图等。 如果您需要,那么包含两列的列表视图也可以使用。

这是一个关于gridviews的好教程: https://www.raywenderlich.com/127544/android-gridview-getting-started

这也是: https://developer.android.com/guide/topics/ui/layout/gridview

这是一个关于列表视图的好教程: https://developer.android.com/guide/topics/ui/layout/gridview