我正在使用sdk 21
并添加buttons
到gridview
. 但是,不知何故,只有第一个按钮在单击时显示波纹效果,而其他按钮则不显示...
编辑:我发现如果我没有在按钮上添加 onClick 监听器,就会显示波纹效果,但是在我添加监听器之后,只有第一个显示波纹效果......
编辑:好吧,经过进一步调查,我发现调用 setCompoundDrawablesWithIntrinsicBounds() 后效果消失了
我通过以下方式获得了resourceId:
TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.hashtag_button);
mSelectedResourceId = a.getResourceId(R.styleable.hashtag_button_selected_image, R.drawable.star_selected);
mUnselectedResourceId = a.getResourceId(R.styleable.hashtag_button_unselected_image, R.drawable.star_unselected);
a.recycle();
我通过以下方法更改图像:
public void setFavorite(boolean isFavorite) {
mIsFavorite = isFavorite;
if (mIsFavorite) { //Favorite
this.setCompoundDrawablesWithIntrinsicBounds(0, 0, mSelectedResourceId, 0);
} else { //Not Favorite
this.setCompoundDrawablesWithIntrinsicBounds(0, 0, mUnselectedResourceId, 0);
}
}
所以这导致只有第一个按钮有连锁反应......不知道如何解决这个......
有人有同样的问题吗?
谢谢