Java 不同行号的Android GridView

Java 不同行号的Android GridView,java,android,gridview,Java,Android,Gridview,我需要使用gridview,并希望动态更改行号 例如: 我需要这样的东西: 我收到一个带有结果的ArrayList,我需要在单行上显示前十个结果,在两行布局上显示从十一个到最后的结果 可以这样做吗?要实现这一点,您可以使用带有自定义适配器的listview,您需要创建两个带有一列的自定义listview项,第二个带有两列的自定义listview项 然后使用 getViewTypeCount() 在你的情况下,它将返回2 并在getView()中用 getItemViewType(int位置)

我需要使用gridview,并希望动态更改行号

例如:

我需要这样的东西:

我收到一个带有结果的ArrayList,我需要在单行上显示前十个结果,在两行布局上显示从十一个到最后的结果


可以这样做吗?

要实现这一点,您可以使用带有自定义适配器的listview,您需要创建两个带有一列的自定义listview项,第二个带有两列的自定义listview项

然后使用

getViewTypeCount()

在你的情况下,它将返回2

并在
getView()
中用

getItemViewType(int位置)

并创建适当的视图并返回它


您可以查看更多详细信息

您可以使用两种不同的网格视图,一种(单行)用于前10个项目,另一种(两行)用于11个至结束项目

我将创建两个布局,都是
GridView
,一个有一列,另一个有两列。我建议第一次使用
列表视图
,因为它只是一列,但不能将可阅读的
列表视图
放在
滚动视图
中。我看到你说你已经试过了,但是看起来不太好,因为它们是分开滚动的

尝试在两个
GridView
s周围添加
ScrollView
,然后禁用其中项目的可滚动性,然后它应作为一个项目滚动

以下是ScrollView的代码:

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

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

这是我的布局代码

<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>


如果始终需要这样做,即始终将前10个放在一行中,则
您可以使用自定义适配器完成此操作。覆盖getView,您将获得位置作为参数,并根据需要返回视图

我建议您使用GridLayout而不是GridView!!您将行与列混淆。我尝试使用listview和gridview,但结果不是很好。。。因为我想滚动搜索所有记录。我尝试使用scrollView,但问题是scrollView没有将匹配父值作为高度。似乎
滚动视图
是,但数据没有映射到整个屏幕?如果没有,你能在物品周围加上边框,告诉我它们的下落吗?绿色是原始布局,边距设置为与父级匹配。红色为滚动视图,背景边距设置为与父项匹配。蓝色是scrolview线性布局背景,边距设置为匹配\u parents似乎
ScrollView
填满了屏幕,那么到底是什么问题?
gridView.setScrollContainer(false);
<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>