0
私は、recyclerviewの各アイテムに対してアルファ値を0fにするアイテムクリックアニメーションを実現しようとしていますが、 :私は少しダウン をスクロールする場合Androidビューのアニメーションは、onClickイベントの代わりにrecyclerviewのいくつかの要素に適用されます
、私はそれが(予想)消え項目をクリック- が、その後、私はまた (予期されていない)が消失し、別の一つの項目を見つけたことができます。
- 、別の奇妙な行動私はrecyclerview項目をスクロールすると、姿を消したこと、 で再び表示されます(私は以前クリックなかった項目)と その他の項目は、(私は以前にクリックしなかった項目)
消える消えますアルファ値が0になることを意味します。
私は他の解決策も見つけましたが、主にonClickイベントを使用していて、同じ問題が発生します。
助けてください。私が持っている
コード:
ListAdapter
public class InteractionCardPrincipleListAdapter extends RecyclerView.Adapter {
List<InteractionCardPrincipleListDataModel> mData;
Context mContext;
public InteractionCardPrincipleListAdapter(Context context, List<InteractionCardPrincipleListDataModel> data) {
mData = data;
mContext = context;
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.interaction_card_principle, parent, false);
return new InteractionCardPrincipleListViewHolder(view);
}
@Override
public void onBindViewHolder(final RecyclerView.ViewHolder holder, final int position) {
((InteractionCardPrincipleListViewHolder) holder)
.getInteractionCardPrincipleFrontText()
.setText(mData.get(position).getTitle());
((InteractionCardPrincipleListViewHolder) holder)
.getInteractionCardPrincipleFrontImage()
.setImageResource(mData.get(position).getResource());
((InteractionCardPrincipleListViewHolder) holder)
.getInteractionCardPrincipleBackText()
.setText(mData.get(position).getDescription());
}
@Override
public int getItemCount() {
return mData.size();
}
}
ViewHolder
public class InteractionCardPrincipleListViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
private final AppCompatTextView mInteractionCardPrincipleFrontText;
private final AppCompatTextView mInteractionCardPrincipleBackText;
private final AppCompatImageView mInteractionCardPrincipleFrontImage;
public InteractionCardPrincipleListViewHolder(View view) {
super(view);
view.setOnClickListener(this);
mInteractionCardPrincipleFrontText = (AppCompatTextView) view.findViewById(R.id.interaction_card_principle_front_text);
mInteractionCardPrincipleFrontImage = (AppCompatImageView) view.findViewById(R.id.interaction_card_principle_front_image);
mInteractionCardPrincipleBackText = (AppCompatTextView) view.findViewById(R.id.interaction_card_principle_back_text);
}
public AppCompatTextView getInteractionCardPrincipleFrontText() {
return mInteractionCardPrincipleFrontText;
}
public AppCompatTextView getInteractionCardPrincipleBackText() {
return mInteractionCardPrincipleBackText;
}
public AppCompatImageView getInteractionCardPrincipleFrontImage() {
return mInteractionCardPrincipleFrontImage;
}
@Override
public void onClick(View v) {
v.animate()
.alpha(0f)
.setDuration(500);
}
}