2013-06-11 3 views
0

Я использую TextView внутри компонента «LabeledTextView» (в принципе, TextView, ярлык которого перемещается с одной стороны на другую при работе с изменениями макета, вызванными должным правом налево языки). Я использую это внутри ListView, и это встречающийся:TextView внутри CustomView внутри ListView усекается горизонтально

enter image description here

Последняя строка текста усекается по горизонтали. Возможно, это ошибка в Android TextView onMeasure()?

Этот же самый компонент "LabeledTextView" используется в других ситуациях и работает совершенно нормально, так что я думаю, что это имеет какое-то отношение к взаимодействию между ним и ListView.

Соответствующая часть элемента списка XML выглядит так:

<LinearLayout 
    android:layout_width="0dp" 
    android:layout_weight="1" 
    android:layout_height="400dp" 
    android:orientation="vertical" > 

    <com.test.library.view.LabeledTextView 
     android:id="@+id/sender" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     custom:label="@string/sender" 
     custom:labelWidth="130dp"/>  

    <com.test.library.view.LabeledTextView 
     android:id="@+id/message" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     custom:label="@string/message" 
     custom:labelWidth="130dp"/>     

</LinearLayout> 

Вы можете видеть, что в вмещающем LinearLayout я обеспечил высоту контейнера не сворачивание размера.

Обычай вид устанавливает LayoutParams в WRAP_CONTENT для высоты - вы можете видеть, что выращено быть почти правильный размер.

EDIT

При увеличении размера LabeledTextView однако вручную, то TextView правильно отображение, так что я думаю, что по умолчанию onMeasure() моего настраиваемого представления не правильно учет для TextView порожденных высоты.

+0

Ваша линейная высота листа равна 400 дп, почему бы не попробовать wrap_content? –

+0

Я специально увеличил его с wrap_content, чтобы гарантировать, что контейнер не несет ответственности за поведение. – Graeme

ответ

0

Используйте другой линейный макет для двух столбцов, необходимых для отображения ответа.

ie. один для отправителя и один для сообщения

Смежные вопросы