每行具有动态列数的GridView

10

如何使用 GridView 来创建下面这个视图。

图片描述

列表中的项目数量是动态的。


3
更小的图片会更好看 :) - WarrenFaith
我认为GridView不支持不同数量的列,所以据我所知,您必须通过将图像分成两半并将其设置为每个列中的一个来“伪造”它,以便行看起来像单个列。出于好奇,为什么您要使用GridView而不是RelativeLayout或其他可以更轻松实现所需效果的东西呢? - FoamyGuy
2个回答

2

我猜这不是单独的GridView,而是多个布局的组合。只需创建一个LinearLayout,根据内容决定在一行中想要哪种布局。


我正在寻找类似的东西,但是行中有大量元素:http://stackoverflow.com/questions/11981294/gridview-like-android-widget-with-variable-lengths/使用布局的缺点是当我向下滚动时,离开屏幕的位图无法进行垃圾回收。我想使用GridView的能力来解决这个问题。 - mparaz
你可以使用 ListView,这样可以循环利用行本身。 - WarrenFaith
我不能使用ListView,因为我的View需要包含高度不同的图片。 看起来我需要开发自己的定制控件。 - mparaz
高度跨越行?像带有列/行跨度的表格?那么你需要自己完成它。也许可以将结果视图提供给其他人? - WarrenFaith
是的,使用行跨度。我会试一下。 - mparaz
使用ScrollView和其中包含的ImageViews并没有成功。当我移除屏幕外的位图,并在它们回来时将它们放回去时,它们不会再出现。我在这里询问了一部分:http://stackoverflow.com/questions/12123634/imageview-setimagebitmap-does-nothing-inside-complex-layout-inside-ontouch-inte - mparaz

0

要获得您所看到的布局,您可以使用类似以下的代码:

<LinearLayout android:orientation="vertical">
    <!-- First row -->
    <View />

    <!-- Second row -->
    <LinearLayout android:orientation="horizontal" />

    <!-- Third row -->
    <LinearLayout android:orientation="horizontal" />

    <!-- Fourth row -->
    <View />

</LinearLayout>

如果您还想要分页效果,可以使用ViewPager。

http://android-developers.blogspot.it/2011/08/horizontal-view-swiping-with-viewpager.html


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接