gpt4 book ai didi

android - ListView 项目重叠

转载 作者:太空狗 更新时间:2023-10-29 14:56:55 25 4
gpt4 key购买 nike

项目 ListView 在删除项目后重叠。为什么?例如在删除第一项之前和之后:

enter image description here

我正在使用以下方法删除元素:

public void updateData(List<ParseObject> data) {
mGroupList.clear();
mGroupList.addAll(data);
notifyDataSetChanged();
}

ListView :

<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:divider="@null"/>

在适配器中获取 View :

@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder;

if (convertView == null) {
viewHolder = new ViewHolder();
convertView = mLayoutInflater.inflate(R.layout.card_item, parent, false);
viewHolder.mCardViewNative = (CardViewNative) convertView.findViewById(R.id.card_view);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}

//code

viewHolder.mCardViewNative.setCard(card);

return convertView;
}

card_item.xml:

<it.gmariotti.cardslib.library.view.CardViewNative
android:background="@drawable/header_dark"
android:id="@+id/card_view"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>

更新

如果不每次都使用 ViewHolder 和膨胀 View ,则没有重叠。但是每次都膨胀 View 并不好。

@Override
public View getView(int position, View convertView, ViewGroup parent) {

convertView = mLayoutInflater.inflate(R.layout.card_item, parent, false);
CardViewNative cardViewNative = (CardViewNative) convertView.findViewById(R.id.card_view);

//code

cardViewNative.setCard(card);

return convertView;
}

最佳答案

尝试

convertView = mLayoutInflater.inflate(R.layout.card_item, null);

代替

convertView = mLayoutInflater.inflate(R.layout.card_item, parent, false);

它对我有用,使用 ViewHolder 作为静态类

关于android - ListView 项目重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30530371/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com