Я использую GridLayout из библиотеки поддержки. Некоторые ячейки содержат информацию об игроке - я использую Linear Layout с двумя TextView. Мне не удалось получить имя (второе текстовое представление) для переноса.
Текущее поведение:
123
John Cochtousczyon
Желаемое поведение:
123
John
Cochtousczyon
Вот текущее состояние макета ячейки xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@+id/player_id"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="left"
android:text="test" />
<TextView
android:id="@+id/player_name"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:ellipsize="end"
android:minLines="2"
android:scrollHorizontally="false"
android:text="testing thisout with extra sauce"
android:textSize="18sp" />
</LinearLayout>
и код, который добавляет его в сетку:
lp = (GridLayout.LayoutParams) playerCell.getLayoutParams();
lp.columnSpec = GridLayout.spec(nameCol);
lp.rowSpec = GridLayout.spec(nameRow);
playerGrid.addView(playerCell, lp);
В идеале мне нужно решение, которое устанавливает ширину столбца для самой широкой ячейки ПОСЛЕ упаковки имени. Я приблизился к желаемому результату, используя maxEms, но для этого нужно уравновесить наиболее вероятный необходимый предел и допустимое усечение с более длинными именами.
P'r'aps, ничего не остается, кроме как исправить ширину - просто подумал, что попрошу на случай, если все более умные люди, чем я, решат это.