0

私は、recyclerviewの各アイテムに対してアルファ値を0fにするアイテムクリックアニメーションを実現しようとしていますが、 :私は少しダウン をスクロールする場合Androidビューのアニメーションは、onClickイベントの代わりにrecyclerviewのいくつかの要素に適用されます

、私はそれが(予想)消え項目をクリック
  1. が、その後、私はまた (予期されていない)が消失し、別の一つの項目を見つけたことができます。
  2. 、別の奇妙な行動私は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); 
    } 
} 

答えて

関連する問題