自定义适配器ListView奇怪的行为

时间:2018-04-16 18:24:49

标签: android listview adapter custom-adapter

我想实现listview,你可以搜索项目并点击它们。这里一切正常。现在我在视图中有一些项目,我想设置alpha值,使它们看起来不能被点击。 为了显示问题,我减少了我的功能,只是将alpha值设置为项目,一些名为“rezept_groesse”的变量等于“Snack”。此字符串也显示在列表视图中。 所以我现在的任务是:减少项目的alpha值“rezept_groesse”等于“Snack”。听起来不是很复杂,但我有一些奇怪的行为: 我创建了一个自定义的基本适配器,在“getView”中,我设置了项目的文本(TextViews),也是这样的alpha值:

    if(spannableString_groesse.toString().equals("Snack")){
        holder.rezept_name_search.setAlpha(0.2f);
    }

    holder.rezept_name_search.setText(spannableStringBuilder);

但是alpha值不是仅为“Snack”值设置,而是为其他一些值设置:

enter image description here

因为你不仅可以看到“Snack”的alpha值减少了,而且“kleine Mahlzeit”也减少了,但并非总是如此。

如果我一次又一次地向上和向下滚动ListView,所有listview项目的alpha值都会降低,“mahlzeit_groesse”具有哪个值无关紧要: enter image description here

也许有人对此问题有解释? 谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

我现在解决了我的问题。我的错误是在滚动时不重置alpha值。所以过了一会儿,每个元素的alpha值都设置为0.2f。 代码必须改为这样的东西:`

if(spannableString_groesse.toString().equals("Snack")){
    holder.rezept_name_search.setAlpha(0.2f);
}else{
    holder.rezept_name_search.setAlpha(1.0f);
}

holder.rezept_name_search.setText(spannableStringBuilder);