列表项的孩子不刷新(List Item child not refreshing)

2019-10-29 21:23发布

我正在写一个自定义列表,其中显示第三列表项具有切换按钮的孩子。 在切换按钮,点击它启动一个确认对话框,要想切换按钮与否。

现在,如果没有则滚动列表它的工作完美。 但是,如果滚动列表(所以第3显示为第一个项目)按钮,然后切换状态( toggleButton.setChecked(false) )后不工作Dialog-Cancel行动。

任何建议,如果我错过什么。

编辑

public View getView(int position, View convertView, ViewGroup parent) {
            View vi = convertView;

            if(convertView == null) {
                vi = inflater.inflate(R.layout.setting_prefernce_row, parent, false);
                final ViewHolder viewHolder = new ViewHolder();

                viewHolder.title = (TextView)vi.findViewById(R.id.txtPreferenceName); // Preference Name
                viewHolder.txtPreferenceSub = (TextView)vi.findViewById(R.id.txtPreferenceSub); // Sub-Preference Name

                viewHolder.txtArrow = (TextView)vi.findViewById(R.id.txtArrow); // text before arrow
                viewHolder.imgArrow = (ImageView)vi.findViewById(R.id.imgArrow); // right_arrow

                viewHolder.btnToggleState = (ToggleButton)vi.findViewById(R.id.tglToggleState); // toggle button
                viewHolder.switchTemperatureUnit = (ImageView)vi.findViewById(R.id.switchTemperatureUnit); // switch button for temperature

                //viewHolder.checkbox.setTag(list.get(position));
                //viewHolder.scores.setTag(list.get(position));
                vi.setTag(viewHolder);
            } else {
                vi = convertView;
            }

....

}

Answer 1:

  1. 六后retrive通过covertviiew .gettag和检索复选框对象
  2. 设置复选框能见度飘(此代码应始终运行)
  3. 检查行3(只要你想),并可见性改变
  4. 如果切换是可见的更新基于模型数据的状态
  5. 当曾经拨动改变更新模型

这些都是我们需要的这种类型的具体要求做平常的事情。 如果你没有得到解决的问题让我知道。



Answer 2:

为了优化需要ViewHolder实施达姆。 并获得目标项目视图下面伟大的工作。

for(int i = start, j = lstSettingPreference.getLastVisiblePosition(); i <= j; i++) {
                if (ordinal == (int) lstSettingPreference.getItemAtPosition(i)) {
                    view = lstSettingPreference.getChildAt(i - start);
                    lstSettingPreference.getAdapter().getView(i, view, lstSettingPreference);
                    break;
                }
            }

参考链接: https://stackoverflow.com/a/9987616/2624806 。



文章来源: List Item child not refreshing