Фоновое изображение не работает должным образом в методе getView - PullRequest
0 голосов
/ 17 января 2012

Ниже показан код и снимок экрана для отображения данных в формате listview, содержащем 4 textview (, из которых будут отображаться только 3 ) и 1 imageView.

Я попробовал следующий код в getView() методе класса Adapter, чтобы задать другое фоновое изображение для чередующихся строк, т.е. 0,2,4 и т.д..

Когда я пытаюсь реализовать это, я получаю вывод, как показано на снимке экрана, т. Е. Когда какие-либо данные textView больше, так что они переносятся на 2-ю строку, тогда текст не отображается должным образом.

Также , хотя xml содержит gravity="top", в некоторых строках по-прежнему остается свободное место.

И, см. Ниже xml, в котором используются параметры alignTop и alignBottom, однако 2-я строка не получает цвет фона надлежащим образом, поскольку ее размер эквивалентен 2 строкам.

ПРИМЕЧАНИЕ: Даже если я использую COLOR вместо IMAGE для фона, результат будет таким же. Так что я думаю, проблема не связана с размерами изображения.

фрагмент метода getView ()

 if (position % 2 == 0) 
     holder.l1.setBackgroundResource(R.drawable.cellbg);
     // l1 is reference of LinearLayout used in below xml.
 else 
     holder.l1.setBackgroundResource(R.drawable.cellbg1);

структура списка (xml)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
    android:id="@+id/tableLayout" 
    android:layout_height="fill_parent" 
    android:layout_width="fill_parent"
    xmlns:android="http://schemas.android.com/apk/res/android">

    <TextView
        android:id="@+id/FirstText"
        android:layout_width="70dp"
        android:layout_height="wrap_content"
        android:gravity="top"
        android:textSize="9sp"/>

    <TextView
        android:id="@+id/SecondText"
        android:layout_width="40dp"
        android:layout_height="wrap_content"
        android:gravity="top"
        android:layout_alignTop="@+id/FirstText"
        android:layout_alignBottom="@+id/FirstText"
        android:textSize="9sp"/>

    <TextView
        android:id="@+id/ThirdText"
        android:layout_width="30dp"
        android:layout_height="wrap_content"
        android:gravity="top"
        android:layout_alignTop="@+id/FirstText"
        android:layout_alignBottom="@+id/FirstText"
        android:textSize="9sp"/>

    <TextView
        android:id="@+id/FourthText"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:gravity="top"
        android:layout_alignTop="@+id/FirstText"
        android:layout_alignBottom="@+id/FirstText"/>

    <ImageView
        android:id="@+id/ivarrow"
        android:layout_width="15dp"
        android:layout_height="wrap_content" 
        android:layout_alignTop="@+id/FirstText"
        android:layout_alignBottom="@+id/FirstText"
        android:paddingTop="5dp"
        android:gravity="top"/>

</LinearLayout>

Что я делаю не так?

screen

1 Ответ

1 голос
/ 17 января 2012

вес: center_vertical? Я предпочитаю сделать TextView SingleLine .. Мне кажется, я думаю, что лучше выглядеть и layout_alignTop layout_alignBottom работает только в RelativeLayout спасибо:)

...