gpt4 book ai didi

android - ListView项目背景色

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

我有一个 ListView,其中每个第二个项目都应该有不同的颜色(例如:白色 -> 灰色 -> 白色 -> 灰色等),它最初似乎可以工作,但一旦我开始滚动,渲染backgroundcolor 似乎失败了:另一种颜色随机设置为项目,当我再次向上滚动时,这种情况发生在开始时颜色正确的项目上。有人可以提示我为什么会这样吗?

我已经在适配器中试过了:

    if((position % 2) == 1) {
layoutHolder.setBackgroundColor(getContext().getResources().getColor(R.color.light_green));
}

这在我的 ListFragment 中:

    private AsyncTask<Void, Void, Void> fillList = new AsyncTask<Void, Void, Void>() {

@Override
protected Void doInBackground(Void... params) {
addListItems();
return null;
}

@Override
protected void onPostExecute(Void result) {
for (int i = 1; i < getListView().getChildCount()-1; i = i+2) {
LOGI(TAG, "for-loop " + String.valueOf(i));
getListView().getChildAt(i).setBackgroundColor(getSherlockActivity().getResources().getColor(R.color.light_green));
}
}
};

更新:

我做了一些日志记录并发现,如果我添加的元素多于屏幕上可见的元素并检查 ListViews 子项计数,ListView 仅保留最初在屏幕上可见的子项,其余的滚动完成时似乎已加载/添加。

最佳答案

在您的适配器中使用此代码..它的工作..您需要提供其他条件。

if ( position % 2 == 0 ){
convertView.setBackgroundColor(Color.GREEN);
}else{
convertView.setBackgroundColor(Color.RED);
}

enter image description here

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

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