Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/215.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android GridView未正确缩放_Android_Gridview - Fatal编程技术网

Android GridView未正确缩放

Android GridView未正确缩放,android,gridview,Android,Gridview,我花了几个小时在这个问题上,研究了每一个相关的问题,这样我就可以在没有解决方案的情况下找到问题 我的问题是: 我有一个网格图像视图。我需要3列(以匹配iOS版本和美学)。如果我将numColumns设置为3,那么每一行的图像行的顶部和底部之间会有很多额外的空间。如果我将宽度设置为autofit,我总是得到2,它们看起来更好,但更喜欢3列 我错过了什么 布局: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/

我花了几个小时在这个问题上,研究了每一个相关的问题,这样我就可以在没有解决方案的情况下找到问题

我的问题是:

我有一个网格图像视图。我需要3列(以匹配iOS版本和美学)。如果我将numColumns设置为3,那么每一行的图像行的顶部和底部之间会有很多额外的空间。如果我将宽度设置为autofit,我总是得到2,它们看起来更好,但更喜欢3列

我错过了什么

布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="top" >

<LinearLayout 
    android:id="@+id/llayout"       
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    >
    <ImageView
        android:id="@+id/header"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="#666666"
        android:clickable="false"
        android:contentDescription="@string/title_card_collection"
        android:src="@drawable/sportscard2x" />
</LinearLayout>

<GridView
    android:id="@+id/cardGrid"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_above="@+id/llayout"
    android:gravity="center"
    android:horizontalSpacing="2dip"
    android:numColumns="3"
    android:stretchMode="columnWidth"
    android:layout_alignParentBottom="true"
    android:verticalSpacing="2dip" >
</GridView>

我希望这是一件容易的事,我只是错过了。提前谢谢

更新:添加了屏幕截图。问题是只显示了1行,如果向下滚动,您会看到其他3行,但中间有很大的空间。

请参阅下面的“提示3”。可以找到带有代码的示例

我认为问题在于您将
布局高度设置为
包裹内容。栅格视图似乎无法正确计算它的总包裹高度,因此,它只显示一行

您可以将
layout\u height
设置为
match\u parent
(或任何其他固定高度,如
120dp
或其他任何东西),也可以尝试扩展
GridView
Java对象并进行一些自己的计算(然后还需要在XML布局中使用自定义的网格视图对象:

不过,我需要强调的是,在API 11之前的Java代码中,没有任何定义良好的方法可以从网格视图中获取列数(您可能需要这样来计算您的数据适配器将产生多少行)。API 11中引入了
getNumColumns
。也没有合适的方法来查找行之间的间距(API 16中引入了
getHorizontalSpacing()
getVerticalSpacing()
方法)

供参考:

技巧1: 我还没有亲自测试过,但你可以试试这样:

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

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        ...
        />

    <GridView
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1.0"
        ...
        />

</LinearLayout>
希望您能从中找到一些灵感:-)

干杯, --dbm

请参阅下面的“提示3”。可以找到带有代码的示例

我认为问题在于您将
布局高度设置为
包裹内容。栅格视图似乎无法正确计算它的总包裹高度,因此,它只显示一行

您可以将
layout\u height
设置为
match\u parent
(或任何其他固定高度,如
120dp
或其他任何东西),也可以尝试扩展
GridView
Java对象并进行一些自己的计算(然后还需要在XML布局中使用自定义的网格视图对象:

不过,我需要强调的是,在API 11之前的Java代码中,没有任何定义良好的方法可以从网格视图中获取列数(您可能需要这样来计算您的数据适配器将产生多少行)。API 11中引入了
getNumColumns
。也没有合适的方法来查找行之间的间距(API 16中引入了
getHorizontalSpacing()
getVerticalSpacing()
方法)

供参考:

技巧1: 我还没有亲自测试过,但你可以试试这样:

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

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        ...
        />

    <GridView
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1.0"
        ...
        />

</LinearLayout>
希望您能从中找到一些灵感:-)

干杯,
--dbm

参考这个毫无帮助的答案。更新以显示更多的XML。您可以发布所需结果的屏幕截图或模型吗?你现在有什么。我刚刚使用了三列gridView,没有任何问题。我检查了你的布局,它按照你的期望工作良好。添加了图像。希望这更清楚。我需要它来显示所有的行。(类似于图片库)参考这个毫无帮助的答案。更新以显示更多的XML。您可以发布所需结果的屏幕截图或模型吗?你现在有什么。我刚刚使用了三列gridView,没有任何问题。我检查了你的布局,它按照你的期望工作良好。添加了图像。希望这更清楚。我需要它来显示所有的行。(类似于图像库)谢谢,我今晚会尝试一下,让你知道它是如何发展到不完美的,但技巧3让我走上了正确的道路,现在只需要使用覆盖。谢谢嗯,还是有差距。无法摆脱它。谢谢,我今晚会尝试一下,让你知道它是如何发展到不完美的,但技巧3让我走上了正确的道路,只需要现在就玩覆盖。谢谢嗯,还是有差距。无法摆脱它。