2

のグループを展開するたびに再生されるアニメーションを実装しようとしていExpandableListViewます。これまでのところ、カスタム アダプターの getChildView を次のように実行します (に基づくBaseExpandableListAdapter):

public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View view,
        ViewGroup parent) {
    // Auto-generated method stub
    ExpandListChild child = (ExpandListChild) getChild(groupPosition,childPosition);
    if (view == null)
    {
        LayoutInflater inflater = 
                (LayoutInflater) m_context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        view=inflater.inflate(R.layout.expandlist_child_item, null);

        AnimatorSet anim = (AnimatorSet) AnimatorInflater.loadAnimator(m_context, 
                R.animator.expand_list_animation);

        anim.setInterpolator(new OvershootInterpolator());
        anim.start();
    }

    TextView tv = (TextView) view.findViewById(R.id.tvChild);
    tv.setText(child.getName());
    tv.setTag(child.getTag());

    CheckBox cb = (CheckBox) view.findViewById(R.id.checkBox1);
    cb.setChecked(child.getState());
    return view;
}

問題は、新しいビューを作成するときにのみアニメーションを適用しているため、グループが初めて展開されたときにのみ機能することです。また、いつでも適用しようとしましたが( の場合だけでなくview==null)、展開されたすべての子(すでに展開されている他のグループの子も含む)に対してアニメーションが再生されるという問題があります。

私はこれを機能させるために多くのことを試みてきましたが、その方法がわかりません。あなたの助けに感謝します。

4

0 に答える 0