【问题标题】:GridView row heightGridView 行高
【发布时间】:2011-01-23 11:23:34
【问题描述】:

我有一个显示图像的 GridView,不幸的是,这些图像的大小不同。它们显示在两行文本之间:

text1.1                text1.2
ImageView(IMAGE1)      ImageView(IMAGE2)
text2.1                text2.2

text3.1
ImageView(IMAGE3)
text4.1

等等……

如果 IMAGE1 与 IMAGE2 高度相同,则一切正常,但如果 IMAGE1 比 IMAGE2 长,则 text2.1 会遇到 text3.1(填充似乎没有多大帮助,因为当图像高度相同时它太多了)。

我知道有一种方法可以拉伸 ImageView 中的图像,使它们具有相同的高度,但是是否可以保持图像原样并以某种方式设置 行高

【问题讨论】:

    标签: android gridview height android-widget row-height


    【解决方案1】:

    在作为网格单元格的 Layout 上使用可绘制对象作为背景,并使用以下命令定义该可绘制对象:

    <size android:height="<some height>" />
    

    例如:

    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle">
    <solid android:color="#ffffff"/>
    <size android:height="60dip" />
    </shape>
    

    【讨论】:

    • 您可以简单地将根视图的 layout_height 设置为 60dip。
    【解决方案2】:

    这是一种替代解决方案,可预先测量项目并将每个单元格的高度设置为该行中的最大高度。

    GridView rows overlapping: how to make row height fit the tallest item?

    【讨论】:

      【解决方案3】:

      您可以控制您的行高,这取决于您放入的行高。由于您的单元格似乎有多个小部件,因此它们可能被包裹在 LinearLayout 或其他东西中。将您的 LinearLayouts 设置为某个特定的高度,并且行都将是该高度。

      就个人而言,如果您要在每个单元格的基础上在每个图像的上方和下方放置文本,我认为您应该调整图像的大小。

      【讨论】:

      • 我也发现了——基本上,我没有看到您可以在布局中设置组件的宽度和高度,而不是 wrap_component 或 fill_parent....
      • 这对我不起作用,无论我在线性布局高度上放什么,GridView 的行为都是一样的......
      • LinearLayout 的layout_height 在尺寸值方面不起作用。
      • LinearLayout中,不要将值设置为wightheight,而是设置为minWidthminHeight
      • 这没有解决根本问题,GridView 在计算行高时只考虑最后一列。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多