getAdapter()というunExpandViews()メソッドを編集し、アダプタ内のすべての項目に対して高さを0に設定してから、すべての行を元に戻しました。私はそれが私に当てはまらないのでメソッドの削除部分をバイパスしました。
private void unExpandViews(boolean deletion) {
int height_saved = 0;
CheckBoxifiedTextListAdapter cbla = (CheckBoxifiedTextListAdapter)getAdapter();
for (int i = 0;i < cbla.getCount(); i++)
{
//View v = getChildAt(i);
View v = cbla.getView(i, null, null);
//if (v == null)
//{
/*
if (deletion)
{
// HACK force update of mItemCount
int position = getFirstVisiblePosition();
int y = getChildAt(0).getTop();
setAdapter(getAdapter());
setSelectionFromTop(position, y);
// end hack
}
layoutChildren(); // force children to be recreated where needed
v = getChildAt(i);
if (v == null)
{
break;
}
height_saved = v.getHeight();
*/
//}
//else
//height_saved = v.getHeight();
if (isDraggableRow(v))
{
ViewGroup.LayoutParams params = v.getLayoutParams();
params.height = 0;
v.setLayoutParams(params);
v.setVisibility(View.VISIBLE);
}
}
}
私は感謝します。 TouchListViewクラスを少し編集して、ListViewアイテムの高さに基づいて行の高さを動的に設定できるかどうかを確認します。私は、TouchListViewクラスからListViewのアダプタにアクセスできると想定しています。そうすれば、コード内の正しい場所にポイントできますか? – Mike6679
@Mike: 'getAdapter()'を使ってアダプタを取得します。 – CommonsWare