2

嘿,伙计们在我的 ListView 上设置背景图像时遇到问题。代码如下

历史.xml

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

<ListView android:id="@id/android:list"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:cacheColorHint="#00000000"
    android:layout_weight="1"
    android:drawSelectorOnTop="false"
    android:src="@drawable/back">
    </ListView>

<TextView  android:id="@id/android:empty"
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="#FFff00"
    android:text="No data"
    android:cacheColorHint="#00000000"
    />
</LinearLayout>

行布局.xml

<?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:orientation="vertical">

<TextView android:id="@+id/ProductName"       
    android:textSize="25sp"         
    android:textColor="#FFFF00"        
    android:layout_width="fill_parent"         
    android:layout_height="wrap_content"
    />

</LinearLayout>

Java 代码

...

setListAdapter(new ArrayAdapter<String>(this, R.layout.rowlayout,R.id.ProductName,Names));

...

我不知道我在这里做什么,但背景没有出现。全身黑色。如果我将背景放在 rowlayout.xml 中的文本视图上,那么它会出现,但它就像整个屏幕一样带有 ListView 的一个条目。尝试了很多教程。也许会犯一些菜鸟错误..请帮帮我

4

4 回答 4

2

使用 android:background="@drawable/icon" 作为列表视图

 <ListView android:id="@id/android:list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:cacheColorHint="#00000000"
android:layout_weight="1"
android:drawSelectorOnTop="false"
android:background="@drawable/icon">
</ListView>
于 2012-05-17T14:18:06.627 回答
0

我相信你所经历的描述在这里:http ://android-developers.blogspot.com/2009/01/why-is-my-list-black-android.html

由于名为“缓存颜色提示”的优化,列表的背景默认设置为窗口的背景颜色,在 Android 的深色主题中 #191919。

如果你在每一行设置一个背景,我想你会明白我的意思。尝试设置以下背景形状:

<?xml version="1.0" encoding="utf-8"?>
<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"
>
<stroke
    android:color="@color/mid_gray"
    android:width="1dp"
/>

<padding
    android:left="7dp"
    android:top="7dp"
    android:right="7dp"
    android:bottom="3dp"
/>

<corners android:radius="10dp" />

<solid android:color="@android:color/white" />
</shape>

像这样:

<?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:orientation="vertical"
android:background="@drawable/shape_data_background">

<TextView android:id="@+id/ProductName"       
android:textSize="25sp"         
android:textColor="#FFFF00"        
android:layout_width="fill_parent"         
android:layout_height="wrap_content"
/>

</LinearLayout>
于 2012-05-17T15:21:11.750 回答
0

在您的列表视图项目上使用 android:background="#00000000" ,然后将父表单背景设置为您的图像

于 2012-05-17T14:55:17.803 回答
0

正如我正确理解您的代码概念一样,您希望在Views 上实现两个 s LinearLayout,其中一个(TextView在您的情况下)具有背景的封面布局,另一个是透明的。ListView因此,除了为您的布局设置背景并使您的透明化之外,别无他法,您android:background="#00000000"还应该设置android:cacheColorHint="#00000000"避免ListView在滚动过程中用黑色填充背景

于 2012-05-17T15:16:36.857 回答