【问题标题】:Custom Adapter ListView strange behaviour自定义适配器 ListView 奇怪的行为
【发布时间】:2018-04-16 18:24:49
【问题描述】:

如果您可以搜索项目并单击它们,我想实现一个列表视图。在这里一切正常。现在我在视图中有一些项目,我想设置 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”值设置,还针对其他一些值设置:

您可以看到,不仅“Snack”的 alpha 值降低了,“kleine Mahlzeit”也降低了,但并非总是如此。

如果我一次又一次地上下滚动 ListView,所有 listview 项目的 alpha 值都会减小,“mahlzeit_groesse”具有哪个值无关紧要:

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

【问题讨论】:

  • 请给我看你的适配器

标签: android listview adapter custom-adapter


【解决方案1】:

我现在解决了我的问题。我的错误是在滚动时没有重置 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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多