Текст Android в ListView отключен - PullRequest
2 голосов
/ 10 октября 2011

Я знаю, что на форумах много таких вопросов, но многие случаи уникальны, так что вот так.

У меня есть настраиваемое представление списка, которое по-разному отображает «событие» на основетема приложения.Текст заголовка, alt-text и тегов обрезаются (независимо от того, какая высота установлена).Не могли бы вы помочь мне решить проблему?

Текст обрезан в двух из 3 моих тем и только на реальном устройстве (не в эмуляторе).

Код для каждого элемента спискаочень похоже, поэтому я прикрепляю только один ниже (и буду прикреплять другие при необходимости);спасибо.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent">
<!-- ?android:attr/listPreferredItemHeight -->
<LinearLayout android:id="@+id/viewrow_flags"
    android:orientation="vertical" android:layout_width="36px"
    android:layout_height="80px" android:layout_marginRight="6dip">
</LinearLayout>
<LinearLayout android:orientation="vertical"
    android:layout_width="0dip" android:layout_weight="1"
    android:layout_height="fill_parent">
    <TextView android:id="@+id/viewrow_toptext"
        android:layout_width="fill_parent" android:layout_height="fill_parent"
        android:singleLine="true" android:layout_weight="1" android:gravity="center_vertical"
        android:textColor="#00ccFF" android:textSize="6pt" android:paddingBottom="1dip"/>
    <TextView android:layout_width="fill_parent" android:gravity="center_vertical"
        android:layout_height="fill_parent" android:layout_weight="1"
        android:id="@+id/viewrow_bottomtext" android:textColor="#0066FF"
        android:singleLine="true" android:textSize="6pt" android:paddingBottom="1dip"/>
    <TextView android:layout_width="fill_parent" android:gravity="center_vertical"
        android:layout_height="fill_parent" android:layout_weight="1"
        android:id="@+id/viewrow_tagtext" android:textColor="#0066FF"
        android:singleLine="true" android:textSize="6pt" android:paddingBottom="1dip"/>
</LinearLayout>
<View android:id="@+id/viewrow_anchor" android:layout_width="0sp"
    android:layout_height="60dip" android:layout_gravity="center" />
<TextView android:id="@+id/viewrow_dayview"
    android:layout_width="60sp" android:layout_height="80px"
    android:gravity="center" android:paddingLeft="6dip"
    android:paddingTop="12dip" />
</LinearLayout>

Ответы [ 5 ]

2 голосов
/ 16 октября 2011

Я выяснил проблему, это была смесь веса макета и общей высоты элемента списка.

        <LinearLayout android:orientation="vertical"
            android:layout_width="0dip" 
            android:layout_weight="1"
            android:layout_height="fill_parent">
-               <TextView android:id="@+id/viewrow_toptext" 
                          android:layout_weight="1"
+               <TextView android:id="@+id/viewrow_toptext"
                          android:layout_width="fill_parent"                              
                          android:layout_height="fill_parent"
-                         android:singleLine="true" 
                          android:ellipsize="end" 
                          android:gravity="center_vertical"
+                         android:singleLine="true" 
                          android:layout_weight="1" 
                          android:gravity="center_vertical"
                          android:textColor="#00ccFF" 
                          android:textSize="6pt" 
                          android:paddingBottom="1dip"/>
-               <TextView android:layout_width="fill_parent"
-                         android:ellipsize="end"
+               <TextView android:layout_width="fill_parent"     
                          android:gravity="center_vertical"
                          android:layout_height="fill_parent" 
                          android:layout_weight="1"
                          android:id="@+id/viewrow_bottomtext" 
                          android:textColor="#0066FF"
                          android:singleLine="true" 
                          android:textSize="6pt" 
                          android:paddingBottom="1dip"/>
-               <TextView android:layout_width="fill_parent"
-                         android:ellipsize="end"
+               <TextView android:layout_width="fill_parent" 
                          android:gravity="center_vertical"
                          android:layout_height="fill_parent" 
                          android:layout_weight="1"
                          android:id="@+id/viewrow_tagtext" 
                          android:textColor="#0066FF"
                          android:singleLine="true" 
                          android:textSize="6pt" 
                          android:paddingBottom="1dip"/>
    </LinearLayout>
                <View android:id="@+id/viewrow_anchor" 
                      android:layout_width="0sp"
-                     android:layout_height="70dip" 
                      android:layout_gravity="center" />
+                     android:layout_height="60dip" 
                      android:layout_gravity="center" />
    <TextView android:id="@+id/viewrow_dayview"
              android:layout_width="60sp" 
              android:layout_height="80px"
              android:gravity="center" 
              android:paddingLeft="6dip"
2 голосов
/ 10 октября 2011

Ваши TextViews определены как отдельные строки с android: singleLine = "true".Таким образом, если текст слишком большой для пробела, он будет обрезан.Либо установите TextViews, чтобы разрешить перенос текстовых сообщений и увеличить их высоту ИЛИ вы можете использовать атрибут android: ellipsize = "marquee" для отображения текста в одной строке.

1 голос
/ 10 октября 2011

добавить android:layout_weight="1" к тем, кто отрезан

0 голосов
/ 17 ноября 2015

просто измените layout_height = "fill_parent" в линейном на wrap_content

<LinearLayout android:orientation="vertical"
    android:layout_width="0dip" android:layout_weight="1"
    android:layout_height="fill_parent">
    <TextView android:id="@+id/viewrow_toptext"
0 голосов
/ 17 октября 2014

У меня настройка android:layout_gravity="center_vertical" в TextView сработала.

См. https://stackoverflow.com/a/11246243/3681880

...