0

Android でカスタム ArrayAdapter を使用して ListView を実装しています。行レイアウトには TextView と ImageView が含まれており、行オブジェクトの状態に応じて ImageView をアニメーション化します。問題は、選択した行でアニメーションを開始すると、別の行を選択するまで実際にアニメーションが開始されないことです。以下は、私の getView メソッドの簡略版です。

@Override
public View getView(int position, View convertView, ViewGroup parent)
{
    View rowView = convertView;
    RowHolder holder = null;
    Item item = items.get(position);

    if(rowView == null)
    {
        rowView = _context.getLayoutInflater().inflate(R.layout.my_list, null);
        holder = new RowHolder();
        holder.title = (TextView)rowView.findViewById(R.id.title);
        holder.imageView = (ImageView)rowView.findViewById(R.id.imageView);
    }
    else
    {
        holder = (RowHolder)rowView.getTag();
    }

    holder.title.setText(item.title);

    if(item.status == ANIMATING)
    {
        holder.imageView.setVisiblity(View.VISIBLE);
        Animation rotation = AnimationUtils.loadAnimation(getContext(), R.anim.button_rotate);

        holder.imageView.startAnimation(rotation);
    }
    else
    {
        holder.imageView.clearAnimation();
        holder.imageView.setVisibility(View.GONE);
    }

    return rowView;
}
4

0 に答える 0