android - GridView - 有时行是顶部对齐的,有时它们是底部对齐的!

标签 android

我正在使用 GridView。一列中有四个项目。每个元素由以下布局组成:

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

  <ImageView
    android:layout_width="32dip"
    android:layout_height="32dip"/>

  <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="11dip"
    android:paddingTop="2dip" />
</LinearLayout>

所以每个元素都是一个小图片,下面有一些文字。布局在第一遍时效果很好。但是,如果一个项目的文本很长,它会自动换行到两行。这可以正常工作,直到您将其滚动进出 View 。默认情况下,一行中的所有图像都是顶部对齐的。当您将一行滚动到屏幕外,然后再回到屏幕上时,您会看到该行以某种方式底部对齐。它看起来像:

第一个布局:

[image]   [image]   [image]  
[text]    [text]    [text
                     wrap]

因此,即使第三个元素有 2 行文本,顶部也是对齐的,这是完美的。如果我将此行滚动到屏幕之外,然后再打开,它看起来像这样:

                    [image]
[image]   [image]   [text
[text]    [text]     wrap]

因此该行在此处底部对齐。我不确定这是否是 GridView 中的错误,或者是否有某种方法可以控制布局始终顶部对齐行。我试过将元素布局的重力设置为“顶部”,不好。似乎也没有任何 GridView 独有的设置来控制它。有什么想法吗?

谢谢

最佳答案

GridView 中项目的高度必须相同。您有 2 或 3 个选项。

  1. 为 TextView 指定高度
  2. 使用 android:singleLine="true"
  3. 使 TextView 成为单行
  4. 如果您必须在某些项目中有 2 行,则使所有项目都有 2 行。你可以这样做 android:minLines="2"

关于android - GridView - 有时行是顶部对齐的,有时它们是底部对齐的!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4106017/

相关文章:

Android AVD 不兼容

android - 加载 ListView 时的 ProgressBar(使用 AsyncTask)

android - 在后台运行 WebView?

javascript - 使用 native react 发送电子邮件(带附件,android)

MapActivity 中的 Android 谷歌地图缓存

android - 更改可绘制对象并将其设置为 drawableLeft

java - 构建项目时捕获 AndroidLocationException

java - NoClassDefFoundError ,这里忽略了什么? (附图)

Android 定期检查互联网连接

android - 创建一个内部有 Pojo 的 Pojo?