背景图像在getView方法中无法正常工作

时间:2012-01-17 07:09:01

标签: android listview android-layout background android-linearlayout

以下显示用于在listview中显示数据的代码和屏幕截图,其中包含4个textview其中只有3个将显示)和1个imageView

我在getView()类的Adapter方法中尝试了以下代码,以便为备用行提供不同的背景图像,即行号。 0,2,4等

当我尝试实现这个时,我得到屏幕截图中显示的输出,即每当任何textView数据更多以便它包装到第二行时,文本就不会被正确显示。

同样即使xml包含gravity="top",仍然会在每行的顶部留出一些空格。

并且,参考下面使用xmlalignTop参数的alignBottom,第二行仍未正确获取背景颜色,因为它的大小相当于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 个答案:

答案 0 :(得分:1)

比重:center_vertical? 我更喜欢制作TextView SingleLine ..我觉得我看起来更好看 和layout_alignTop layout_alignBottom仅适用于RelativeLayout thx:)