Я использую 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, для управления этим. Любые идеи?
Спасибо