【问题标题】:How to Show/Hide a TextView from ListView如何从 ListView 显示/隐藏 TextView
【发布时间】:2018-01-22 15:53:37
【问题描述】:

我有一个 ListView,其中的项目具有相同的视图来显示一些数据,我有一个 OnItemClickListener,当我单击一个项目时,它会显示一个 TextView(以前隐藏)作为可扩展文本。

问题


如果我单击第一个项目并开始向下滚动,其他项目(随机)显示展开的 TextView,我只想显示我单击的项目的当前 TextView。

谁能给我一个正确做的线索?

非常感谢

我的代码:

@Override
        public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
           TextView expandedText = (TextView)view.findViewById(R.id.txtExpanded)
           if(expandedText.getVisibility()==View.VISIBLE){
              expandedText.setVisibility(View.GONE)
           }else{
              expandedText.setVisibility(View.VISIBLE)}
        }

【问题讨论】:

  • 请分享您的代码
  • 您的适配器可能有错误,请输入代码..
  • 请发布您的适配器类代码
  • 如果您使用ViewHolder 模式,那么这意味着您正在回收相同的视图,在这种情况下,您需要在每次将新项目绑定到查看。

标签: android listview onitemclicklistener


【解决方案1】:

没有看到您的实际适配器,我猜这是因为您使用了视图持有者。由于视图持有者回收小部件并重置数据,每次用于显示点击单元格的持有者被回收时,都会显示应用了“点击”逻辑的新数据。因此,将小部件“重置”到基本状态并跟踪已经点击了哪些“数据”,最好是在数据对象本身内部。最好创建一个视图组来处理所有小部件和显示/隐藏字段的逻辑,而不是将它们设置到适配器中。

【讨论】:

  • 非常感谢,我用你的逻辑解决了问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-28
相关资源
最近更新 更多