grrigore Ответов: 0

Установка ширины 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

Извините за поздний ответ. Я подумал о том, чтобы установить равную ширину столбца. Я просто хотел знать, есть ли решение увеличить ширину настолько, насколько это необходимо.

Спасибо за ответы! :)

0 Ответов