Android GridView具有不同的行号

时间:2014-01-31 12:15:39

标签: java android gridview

我需要使用gridview,我想动态更改行号。

示例:

我需要这样的东西:

Image

我收到一个带有结果的ArrayList,我需要在单行上显示前10个结果,从11个结果显示在两行布局上结束。

有可能吗?

5 个答案:

答案 0 :(得分:0)

要完成此操作,您可以将listview与自定义适配器一起使用,您需要创建2个自定义列表视图项目,其中包含一列,第二个列表包含2列。

然后使用

getViewTypeCount()

在你的情况下会返回2.

并在getView()中使用

检查类型

getItemViewType(int position)

并创建适当的视图并将其返回。

您可以查看this link了解更多详情

答案 1 :(得分:0)

对于前10个项目,您可以使用两个不同的网格视图(单行),对于11个结束项目,可以使用第二个(有两行)。

答案 2 :(得分:0)

我会创建两个布局,两个布局都是GridView,一个布局有一列,另一个布局有两列。我建议首先使用ListView,因为它只有一列,但您不能在ListView内放置不可滚动的ScrollView。我看到你说你已经尝试过了,但是它们看起来并不是很好,因为它们是分别滚动的。

尝试在ScrollView周围添加GridView,然后禁用内部项目的可滚动性,然后将其滚动为一个项目。

以下是ScrollView的代码:

<ScrollView
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent">

然后显然在XML的末尾结束它:

</ScrollView>

执行此操作后,您应该使用以下行禁用GridView的可滚动性:

gridView.setScrollContainer(false);

我希望这有帮助!询问您是否需要任何东西。

答案 3 :(得分:0)

这是我的布局代码。

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/ScrollView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".Listado" >

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <ListView
            android:id="@+id/lvDestacadas"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="3dp"
            tools:listitem="@layout/celda" >
        </ListView>

        <GridView
            android:id="@+id/gvGeneral"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:horizontalSpacing="2dip"
            android:numColumns="2"
            android:verticalSpacing="2dip"
            tools:listitem="@layout/celda_grid" >
        </GridView>
</LinearLayout>

答案 4 :(得分:0)

如果它总是需要以这种方式完成,那么总是前10个将在一行中 你可以使用自定义适配器。覆盖getView,您可以根据需要返回视图。