问题标签 [android-gridlayout]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
22517 浏览

android - 具有不同单元格大小、pinterest 样式的 gridView

背景

GridView是一个扩展AdapterView的类,这意味着它可以有效地以网格样式显示单元格,当用户滚动旧视图时,它会回收显示为新视图。

问题

有时,您可能希望获得一个特殊的 UI,它类似于 Windows Phone Tiles UI,具有不同大小的单元格。

像这样的东西:

每个字母代表其单元格的一部分,因此单元格 A 为 2x4 ,单元格 B 和单元格 C 各取 2x1 ,单元格 D 为 2x2 。

它可能不止于此,单元格 D 完成的位置比我所展示的要高一点,而在它的正下方有另一个单元格,因此 D 的末端和 A 的末端不需要对齐。

具有这种风格的应用示例是pinterest

GridView 不允许这样的事情。

事实上,我尝试过的每个解决方案都有问题。想问问有没有其他替代方案或更好的解决方案。

我发现了什么

有多种方法可以处理这个问题:

  1. 作为扩展AdapterView 的类, GridView能够为每个项目设置一个类型(使用BaseAdapter),这将允许您设置单元格的布局方式。

    但是,它仍然会限制您,因为您将获得一排排的项目,一个在另一个之下。你必须让它们对齐。

  2. GridLayout是一种相对较新的布局,而且非常灵活。谷歌已经为它发布了一个很好的兼容性库,支持 API7 及更高版本。

    但是,它不使用任何视图回收,因此如果您希望显示很多项目,这是一个糟糕的选择。

    如果您有很多项目,则需要为它们创建所有视图。

  3. QuiltView 库- 从 GridLayout 扩展,所以基本上有同样的问题。

  4. StaggeredGridView - 看起来最有前途,但有很多错误,尤其是在改变方向时。此类错误包括空单元格、不良滚动和 NPE(很少见但仍然会发生)。我也不确定它是否支持自定义单元格而不是单独的 imageViews。

  5. 其他解决方案,如此所述。

问题

有谁知道这个问题的另一种选择?对于我展示的任何解决方案,也许有一些解决方法?


编辑:我认为关于 StaggeredGridView ,可以通过使用在 getView 中设置其大小的普通 ImageView 来解决滚动和异常。我认为它以一种奇怪的方式工作的原因是样本在从互联网加载后更新了 imageview 的大小。

但是,这个库中仍然存在空单元问题。不仅如此,即使不改变方向,它们的尺寸也会发生很大变化。


编辑:目前,我认为最好的解决方案是使用 PinterestLikeAdapterView 库

它没有我能找到的任何问题。

但是,它不能使项目占用超过 1 个单元格宽度。尽管如此,它还是很好的。

编辑:遗憾的是它与 notifyDataSetChanged 有问题。我在这里报道过。

0 投票
1 回答
162 浏览

android - 视图填满所有可用空间

我正在尝试以GridLayout编程方式使用。

这是我的代码:

这是我得到的结果:

在此处输入图像描述

虽然我期待这样的事情:

在此处输入图像描述

请问我做错了什么???

谢谢 !!!

编辑 编辑 编辑

即使我将视图的 LayoutParams 设置为 WRAP_CONTENT,也会发生这种情况:

0 投票
6 回答
94181 浏览

android - GridLayout 列宽

我的GridLayout. 我想要做的是让这些列占据屏幕宽度的一半,然后让其子内容填充它们自己的单元格宽度/高度。我尝试将孩子设置为,fill_parent但这只会导致第一个接管整个布局。而且似乎 GridLayout 不支持weight?也许有更好的布局可以使用,但我想要一个 Grid 样式的布局,所以这似乎是自然的选择。

0 投票
1 回答
1474 浏览

android - Android GridLayout 适合所有尺寸

我正在 Android 上移植一个 iOS 应用程序,但不能适合所有尺寸的这种简单布局:

问题是它ImageButton不能扩展。此布局仅适用于 Nexus 4

我把图片放进去drawable-mdpi

GridLayout必须是一个表格,WebView顶部有 3 列和 3x3 按钮图像

0 投票
1 回答
741 浏览

android - 支持 v7 GridLayout 不拉伸列

我正在尝试在我的项目中使用支持库中的 GridLayout。我所做的只是将它作为 Android 库添加到我的项目中。我创建了一个简单的布局来显示什么不起作用。

这是我在 Eclipse 布局编辑器中看到的(在设备上相同): 在此处输入图像描述

如您所见,GridLayout 的内容并没有占据整个宽度。Button 也不占用 span 定义的空间。有任何想法吗?

0 投票
4 回答
4225 浏览

android - 创建像 pinterest 应用一样的网格视图

谁能告诉我如何创建这样的布局来帮助我: 在此处输入图像描述

它看起来像一个网格视图,但并非所有项目都具有相同的宽度和高度。

0 投票
1 回答
1107 浏览

android - GridLayout 兼容性 - ClassNotFoundException:找不到类“android.support.v7.widget.GridLayout”

我正在尝试在我的 Android 2.2 项目中使用 GridLayout,在我的工作区中安装了 gridlayout_v7 项目后,将其添加到我的项目 Android 依赖项中,为其自定义属性添加自定义 xmlns,并将其嵌入到我的 xml 布局中:

我在运行时开始收到以下异常:

我尝试过清理和重建,删除库并再次添加,但无济于事。关于可能导致这种情况的任何想法?

0 投票
0 回答
1241 浏览

android - 如何在 GridLayout 中获取视图的行和列位置/编号?

我正在开发一个应用程序,我在其中使用网格布局来排列 TextView。TextViews 是动态添加的。

现在我想要的是当用户点击任何点击监听器时,应该弹出一个 toast,给出 textview 的行号和列号的位置。(我也在使用列跨越)。

到目前为止,我已经在 textView 上实现了单击侦听器,但我无法弄清楚如何让它的位置显示在 toast 中。

Grid Layout 添加在 Horizo​​ntal ScrollView 中,然后又添加到 Scroll View 中,我需要此设置才能双向滚动。

我的布局 XML :-

我正在关注以下问题以动态添加视图

如何使 GridLayout 适合屏幕大小

我的网格布局是:- 在此处输入图像描述

及其网格布局不是网格视图!

任何建议表示赞赏!

0 投票
2 回答
864 浏览

android - 创建网格布局。

我需要创建这样的布局:在此处输入图像描述 ,我正在尝试使用 gridlayout 执行此操作,但我找不到正确的方法。谁能给我一些指导?谢谢!

0 投票
2 回答
2975 浏览

android - 混淆 android.support.v7.widget.GridLayout 问题

我试图混淆我的 android 应用程序,我在其中使用 android.support.v7.appcompat 和 android.support.v7.GridLayout,但应用程序崩溃并出现以下异常:

我的 proguard-project.txt:

我该如何解决这个问题?