Я использую TableLayout в ListView.Данные, которые я представляю, являются табличными по своему характеру, и TableLayout кажется хорошим способом убедиться, что столбцы выстроены по желанию.Этот подход хорошо работал большую часть времени - см. Ниже.
Желаемое представление:
Но иногда представления, представляющие столбцы, переносят свое текстовое содержимоекак показано ниже.
Поработав некоторое время, я наткнулся на после обсуждения в группе Google Android .В ответ я установил android:stretchColumns="*"
в TableLayout и вуаля, содержащиеся TextViews перестали таинственным образом оборачивать свой текст.
Вот частичное содержимое XML макета с изменением, выделенным комментарием:
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:stretchColumns="*"> <!-- stretchColumns needed to prevent
TableLayout from unilaterally deciding to shrink the column
width and thereby causing text to wrap. -->
Хотя сейчас я получаю желаемый результат, я немного запутался, почему это «решило» мою проблему.В документации TableLayout указано, что «ширина столбца определяется строкой с самой широкой ячейкой в этом столбце».Но если это правда, почему столбцы, по-видимому, вначале уменьшались в размере, что приводило к переносу текста?
У кого-нибудь есть хорошее объяснение?