我有一個列表視圖和項目列表。每個項目都有一個帶有星號的小圖片按鈕,將其標記爲最愛。點擊明星ImageButton時,我希望它做一點旋轉。在Android 4.3中可以正常工作,但在2.3版本上,不僅點擊的星星會旋轉,還會在上面的項目中顯示星星。在ListView中查看動畫
我已經試圖不使用ViewHolder的明星,因爲我認爲這可能會導致它,但這並沒有幫助。
順便說一下,我在onClickListener中做了其他的工作,並且工作正常,只能用於點擊的項目。
可能是我的問題?
這是在列表中的適配器我getView方法的一部分:
CheckableImageButton favBtn = (CheckableImageButton) convertView
.findViewById(R.id.favbtn);
favBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
v.startAnimation(AnimationUtils.loadAnimation(ctx,
R.anim.spinanim));
}
});
這是我的整個getView方法:
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder holder;
checkLoadMore(position);
final Item item = combinedResult.getItems().get(position);
if (convertView == null) {
convertView = myInflater.inflate(R.layout.item_fewo_v7, null);
holder = new ViewHolder();
holder.Iv = (RecyclingImageView) convertView
.findViewById(R.id.imageView1);
holder.Tv1 = (TextView) convertView.findViewById(R.id.textView1);
holder.Tv2 = (TextView) convertView.findViewById(R.id.textView2);
holder.Tv3 = (TextView) convertView.findViewById(R.id.textView3);
holder.Tv4 = (TextView) convertView.findViewById(R.id.textView4);
holder.Root = (RelativeLayout) convertView.findViewById(R.id.root);
holder.Starbg = (RelativeLayout) convertView
.findViewById(R.id.starbg);
convertView.setTag(holder);
}
else {
holder = (ViewHolder) convertView.getTag();
}
CheckableImageButton favBtn = (CheckableImageButton) convertView
.findViewById(R.id.favbtn);
favBtn.setChecked(FavItems.contains(item.getGuid()));
favBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (FavItems.contains(item.getGuid())) {
FavItems.removeFav(item.getGuid());
}
else {
FavItems.addFav(item);
}
v.startAnimation(AnimationUtils.loadAnimation(ctx,
R.anim.spinanim));
}
});
holder.Tv1.setText(item.getTitle());
holder.Tv2.setText(item.getLocation().getDescription());
holder.Tv3.setText(item.getPrice().getPriceText() + " "
+ item.getPrice().getPaymentIntervalShort());
holder.Tv4.setText("bis " + item.getPersonsMax() + " Personen");
displayImage(Tools.convertImageUrl(item.getThumbnailUrl()), holder.Iv,
holder.Root);
return convertView;
}
您需要使用標記。使用setTag()和getTag()方法將標籤添加到圖像按鈕,它可以幫助您識別哪個按鈕被點擊。 – Arshu
發佈你的getView()方法實現 –
嘗試使用AnimationListner,它可能有幫助 – Abx