强制 GridView 只显示一行?

use*_*701 5 android

有没有办法强制 GridView 成为单行?现在默认情况下,它将扩展其高度以容纳其适配器提供的所有视图

Omi*_*nia 0

您应该结合水平 SCROLLVIEW 和 LINEARLAYOUT 以及 GRIDVIEW 来实现您想要的!将网格视图放在线性布局中,并将线性布局放在水平滚动视图中;

然后在设置适配器时!数一下数据的数量!之后,您应该计算所需的宽度以显示所有项目!例如您想显示 8 项!每个宽度为 100dp 。所以所需的宽度是 800dp!那么你应该添加这些代码行

yourGridView.setNumColumns(8);
LinearLayout.LayoutParams lp=new LinearLayout.LayoutParams(800, ViewGroup.LayoutParams.MATCH_PARENT);
yourGridView.setLayoutParams(lp);
Run Code Online (Sandbox Code Playgroud)

不要忘记在 xml 中将线性布局的宽度设置为 WRAP_CONTENT!

*** 重要的提示

据我所知,通过这样做,gridview 无法进行垃圾回收,因为 Scroll View 不支持这样的事情,并且您的网格视图嵌套在其中!所以不要对大量图像使用此方法,否则您将收到 HEAP SIZE 错误!