0

展開可能なリスト ビューの要素を非表示にする必要があるアプリケーションを作成しています。

これが私がそれを達成するためにしていることです。

public View getGroupView(int groupPosition, boolean isLastChild, View view,
            ViewGroup parent) {

        CardHeaderInfo headerInfo = (CardHeaderInfo) getGroup(groupPosition);
        if (view == null) {
            LayoutInflater inf = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            view = inf.inflate(R.layout.card_group_view, null);
        }

        if(groupPosition < validChild) {
            TextView heading = (TextView) view.findViewById(R.id.heading);
            heading.setText(headerInfo.getName().trim());
        } else {
            view.setVisibility(View.INVISIBLE);
        }

        return view;
    }

ここでの作業を最適化するために、 ViewHolder の概念を使用しましたが、これを使用すると、リストのスクロールを開始すると、一部の変数がビューを非表示に置き換えても、要素がシャッフルされます。

ViewHolder の使用中にこの問題を解決する方法はありますか?

4

1 に答える 1

0

表示済みの非表示要素に別の行を追加して、これを取得しました。

if(groupPosition < validChild) {
            view.setVisibility(View.VISIBLE); ****
            TextView heading = (TextView) view.findViewById(R.id.heading);
            heading.setText(headerInfo.getName().trim());
        } else {
            view.setVisibility(View.INVISIBLE);
        }
于 2014-12-21T06:51:23.673 に答える