0

到目前为止,我想更改列表视图的背景,我已经尝试过了

<ListView
android:id="@+id/myList"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:background="@color/white"/>

但这里的背景似乎不起作用。事实上,它显示了默认的背景,任何想法如何实现它。

4

8 回答 8

0

Try setting it as a resource setBackgroundResource(R.color.color_red)

于 2013-05-28T06:33:34.193 回答
0

You need to define a selector fisrt.Like this, list_bg.xml

        <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="false" android:drawable="@color/BackgroundColor" />
    <item android:drawable="@color/white" />
</selector>

Then set this as your background.

 <ListView
android:id="@+id/myList"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:background="@drawable/list_bg"/>
于 2013-05-28T06:34:06.863 回答
0

尝试更改每个列表项布局的颜色。

设置适配器时,找到列表项的 xml:

public class YourListAdapter extends BaseAdapter {

   /....Code for Adapter ...../

         public View getView(int position, View view, ViewGroup parent) {
            if (view == null) {

            view = mInflator.inflate(R.layout.yourxml_listitem, null);

  /...rest of code for adapter .../

然后编辑列表项的 xml 布局并为每个列表项添加背景颜色,因为我怀疑您正在设置不同的颜色/或者将颜色设置为透明。

于 2013-05-28T06:29:22.027 回答
0
<ListView
android:id="@+id/myList"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:cacheColorHint="#00000000"/>

如果您使用自定义列表视图,则在 listitem latout 中定义背景颜色。

listitem.xml// 说

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/linearlayout"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="@color/artists_list_backgroundcolor"
    android:baselineAligned="false"
    android:orientation="vertical" >
  // Your Listitem widgets

</LinearLayout>

试试这样。。

于 2013-05-28T06:50:45.567 回答
0

android:layout_height="fill_parent" 首先检查你的背景是否设置正确,否则 setBackgroundResource 像这样(确保你的列表视图在所有其他视图之上)

listview.setBackgroundResource(android.R.color.darker_gray);

如果你想要自己的颜色

listview.setBackgroundResource(R.color.Yellow);

在你的 /res/strings.xml 文件中

<color name="Yellow">#FF0</color> 更多颜色 http://en.wikipedia.org/wiki/Web_colors

于 2013-05-28T07:40:58.570 回答
0

你为什么不试试下面几行。

<LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_margin="7dip"
                android:background="@drawable/list_white_bg" >

                <ListView
                    android:id="@+id/listView"
                    android:layout_width="wrap_content"
                    android:layout_height="170dip"
                    android:divider="#e0e0e0"                    
                     android:drawSelectorOnTop="false"
                    android:dividerHeight="1dip"
                    android:fadingEdge="none" >
                </ListView>
            </LinearLayout>
于 2013-05-28T06:56:24.627 回答
0

在 android 2.2 上有一个错误。我发现最佳做法是将图像放在后面并将背景设置为空。

<RelativerLayout 
android:layout_height="wrap_content"
android:layout_width="wrap_content">

   <ImageView
   android:layout_height="fill_parent"
   android:layout_width="fill_parent"
   android:src="@drawable/list_bg"/>

   <ListView
   android:id="@+id/myList"
   android:layout_height="wrap_content"
   android:layout_width="fill_parent"
   android:background="@null"/>

</RelativerLayout>
于 2013-05-28T07:58:38.963 回答
0

如果您有此列表的自定义 ListAdapter,您可以简单地在该类的 getView() 方法内更改布局。

如果您没有,则需要在自定义主题中更改这两个参数

<item name="listChoiceBackgroundIndicator">@android:drawable/list_selector_background</item>

  <item name="activatedBackgroundIndicator">@android:drawable/activated_background</item>

我是在自定义列表适配器中完成的,因为我有不同的要求,即列表行的替代背景颜色等,并且效果很好。从未尝试过第二个选项,但我相信它应该可以工作......请参阅此链接以获取自定义主题的其他替代方案。

编辑 我们不在 string.xml 中编写样式和主题声明,该文件仅用于字符串声明。在 values 文件夹中创建文件主题.xml,请参阅以下教程

  1. 一个简单的教程
  2. 一个很好的教程
  3. 最好的教程

请参阅上述任何示例。创建主题后,您需要将该主题应用于 android-manifyt 文件中的 Activity / Application。您还需要扩展任何现有主题。

于 2013-05-28T06:39:08.913 回答