【发布时间】:2010-11-05 12:57:53
【问题描述】:
我正在使用 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>
所以每个元素都是一个小图片,下面有一些文字。布局在第一遍时效果很好。但是,如果一个项目的文本很长,它会自动换行到两行。这可以正常工作,直到您将其滚动进出视图。默认情况下,一行中的所有图像都是顶部对齐的。当您将一行滚动到屏幕外,然后返回屏幕时,您会看到该行以某种方式底部对齐。它看起来像:
第一个布局:
[image] [image] [image]
[text] [text] [text
wrap]
所以即使第三个元素有 2 行文本,顶部也是对齐的,这是完美的。如果我将此行滚动到屏幕之外,然后再打开,它看起来像这样:
[image]
[image] [image] [text
[text] [text] wrap]
因此该行在此处底部对齐。我不确定这是否是 GridView 中的错误,或者是否有某种方法可以控制布局始终顶部对齐行。我试过将元素布局的重力设置为“顶部”,不好。似乎也没有任何 GridView 独有的设置来控制它。有什么想法吗?
谢谢
【问题讨论】:
-
我现在能想到的就是在所有字符串中添加空格以等于我的数据集中最长字符串的长度。由于字体是等宽的(我认为),所以一切都应该再次正确对齐。这太疯狂了!
-
如果您已经找到请分享答案。
-
@user291701 你有没有找到答案,我自己也在苦苦挣扎
标签: android