Android ListView项目在滚动时重叠

Android ListView项目在滚动时重叠,android,android-listview,Android,Android Listview,我已经在应用程序中使用自定义的CursorAdapter实现实现了ListView。我的问题是,每当我在启动应用程序后快速滚动到列表的底部时,我有时会看到所有的ListView项目都相互重叠。如果我向上滚动或触摸其中一个项目,它们将正确排列 下面是我快速向下滚动后的效果: 以下是我选择其中一项时的外观: 以下是我的ListView的XML: 这是bindView。。方法: 我还注意到,只有当我的设备Galaxy S2处于节能模式时,我才能复制它。这里有什么我应该做的不同吗?提前谢谢 编辑:包

我已经在应用程序中使用自定义的CursorAdapter实现实现了ListView。我的问题是,每当我在启动应用程序后快速滚动到列表的底部时,我有时会看到所有的ListView项目都相互重叠。如果我向上滚动或触摸其中一个项目,它们将正确排列

下面是我快速向下滚动后的效果:

以下是我选择其中一项时的外观:

以下是我的ListView的XML:

这是bindView。。方法:

我还注意到,只有当我的设备Galaxy S2处于节能模式时,我才能复制它。这里有什么我应该做的不同吗?提前谢谢

编辑:包括列表项的布局

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:paddingLeft="2dp">

<TextView android:id="@+id/item_what_text"
          android:lines="1"
          android:maxLines="2"
          android:textSize="22dp"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:paddingTop="3dp"/>

<TextView android:id="@+id/item_when_text"
          android:lines="1"
          android:maxLines="1"
          android:textSize="14dp"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="13 minutes"
          android:paddingBottom="2dp"
          android:layout_below="@+id/item_what_text"/>

<ImageView
    android:id="@+id/list_item_arrow"
    android:src="@drawable/next"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_centerVertical="true"/>


</RelativeLayout>
一,。 在我看来,高度就是内容 因为listview是还原行 2.
另一种观点是在ListView中编写android:cacheColorHint=00000000代码。我也面临同样的问题,在滚动时,ListView中的列表项相互重叠

我的解决方案:
我刚刚为包含所讨论的ListView的父布局指定了一个背景。以前它是透明的。

为了解决这个问题,我还有一个解决方案:

使用此布局时,我遇到了一个问题:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/root"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"    
    >       
        <ListView
            android:id="@+id/list"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" 
            android:scrollbars="none"            
            android:paddingTop="4dip"   
            android:dividerHeight="0dp"
            android:divider="@null"   
            android:cacheColorHint="#00000000"
            android:listSelector="@color/transprent_editbox"
            android:focusableInTouchMode="false" />           
</RelativeLayout>
为了解决这个问题,我只是对上面的布局做了一些修改,包括: 1将顶部布局从相对更改为线性布局。 2在其他相对布局中输出我的ListView。。 我喜欢这样:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/root"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"    
    android:orientation="vertical" >
        <RelativeLayout        
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"       
            android:orientation="vertical" >
        <ListView
            android:id="@+id/list"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" 
            android:scrollbars="none"            
            android:paddingTop="4dip"   
            android:dividerHeight="0dp"
            android:divider="@null"   
            android:cacheColorHint="#00000000"
            android:listSelector="@color/transprent_editbox"
            android:focusableInTouchMode="false" />
        </RelativeLayout>
</LinearLayout>

使用此选项后,我的问题得到了解决。

我也遇到了同样的问题,并发现这是由于在listview中将animateLayoutChanges属性设置为true引起的

不幸的是,我删除了listview的动画,但至少在快速滚动时,它可以正常绘制


正如Pavan所提到的,给父布局一个背景似乎也可以解决这个问题。如果我发现背景变化的问题,我会尝试并更改我的答案。

我也遇到了同样的问题,并发现animateLayoutChanges属性导致了这些问题

所以我改变了

android:animateLayoutChanges="true"


它成功了

你能发布你的列表项目的布局吗?@MichałZ。我现在已经包含了它。对不起,这一点都没有帮助。你能在这里写你的xml吗。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/root"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"    
    >       
        <ListView
            android:id="@+id/list"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" 
            android:scrollbars="none"            
            android:paddingTop="4dip"   
            android:dividerHeight="0dp"
            android:divider="@null"   
            android:cacheColorHint="#00000000"
            android:listSelector="@color/transprent_editbox"
            android:focusableInTouchMode="false" />           
</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/root"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"    
    android:orientation="vertical" >
        <RelativeLayout        
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"       
            android:orientation="vertical" >
        <ListView
            android:id="@+id/list"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" 
            android:scrollbars="none"            
            android:paddingTop="4dip"   
            android:dividerHeight="0dp"
            android:divider="@null"   
            android:cacheColorHint="#00000000"
            android:listSelector="@color/transprent_editbox"
            android:focusableInTouchMode="false" />
        </RelativeLayout>
</LinearLayout>
android:animateLayoutChanges="true"
android:animateLayoutChanges="false"