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