Установка ширины textview в соответствии с другим textview
У меня есть ListView с несколькими текстовыми представлениями разной ширины.
Предполагая, что я могу добавить TextView с более длинным текстом в любое время.
Как я могу получить максимальную ширину из всех текстовых представлений и установить ее на все остальные, чтобы мой текст отображался в одной строке?
Пример:
Column1 | Column2 text | texttext text | texttexttext
Я хочу, чтобы все элементы из column2 имели ту же ширину, что и texttexttext.
Что я уже пробовал:
Я попытался установить ширину для TextView, а также установить android:singleLine="true", но если текст, который я ввожу, вводится больше, чем ширина, которую я установил в качестве примера, если у меня есть
texttexttext в качестве входных данных
на экране мобильного телефона у меня будет тексттекс...
David Crow
Если ширина первого столбца статична, почему бы просто не сделать так, чтобы ширина второго столбца занимала оставшееся пространство?
grrigore
Это не имеет никакого отношения к первой колонке. Простите, что я не совсем ясно выразился. У меня будет n колонок с разным текстом разной длины. Так что, на мой взгляд, я действительно не могу установить ширину.
David Crow
- Так что, по-моему, я действительно не могу установить ширину."
Итак, тогда "настройка ширины textview..." часть этого потока означает, что именно?
Как выглядит XML - файл макета? Как выглядит код, который добавляет элементы в ListView
?
grrigore
Извините за путаницу, которую я создал.
Я имею в виду, что у меня есть как бы три колонки, скажем, column1, column2, column3.
В xml-коде у меня будет LinearLayout с горизонтальной ориентацией, в которой я определяю что-то вроде заголовка. В этом LinearLayout у меня будет 3 textViews, каждый из которых содержит текст с column1, column2 и так далее..
Таким образом, макет будет выглядеть следующим образом:
Столбец1 | Столбец2 | Столбец3
ListView с элементом, состоящим из трех textView.
После этого LinearLayout у меня будет ListView с таким же количеством столбцов, как я сказал ниже.
Я обновил здесь два xml файла https://github.com/grrigore/ListView
Теперь я не знаю, как долго будет храниться текст в элементах ListView, и я хочу, чтобы каждый текст, имеющий разную длину, отображался полностью.
Надеюсь, все ясно!
David Crow
"Теперь я не знаю, как долго будет храниться текст в элементах ListView, и я хочу, чтобы каждый текст, имеющий разную длину, отображался полностью."
Вы же понимаете, что это будет работать только до определенного момента, верно? В этот момент длинный текст будет усечен (с многоточиями).
Одним из решений, которое может идти или не идти вразрез с вашим замыслом, было бы изменить три TextView
в вашем list_item.xml
чтобы иметь layout_width
от 0dp
и layout_weight
от 1
Это сделает все три "колонки" одинаковой ширины (т. е., 0.33
).
Если это не сработает, вы можете поиграть с layout_weight
ценности, что-то вроде:
<TextView android:id="@+id/text_column1" android:layout_width="0dp" android:layout_weight="0.25" android:layout_height="match_parent" android:text="Column1" /> <TextView android:id="@+id/text_column2" android:layout_width="0dp" android:layout_weight="0.37" android:layout_height="match_parent" android:text="Column2" /> <TextView android:id="@+id/text_column3" android:layout_width="0dp" android:layout_weight="0.37" android:layout_height="match_parent" android:text="Column3" />
grrigore
Извините за поздний ответ. Я подумал о том, чтобы установить равную ширину столбца. Я просто хотел знать, есть ли решение увеличить ширину настолько, насколько это необходимо.
Спасибо за ответы! :)