androidx.recyclerview.widget.RecyclerView#ViewHolder ( )源码实例Demo

下面列出了androidx.recyclerview.widget.RecyclerView#ViewHolder ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

@Override
    public void onBindHeaderViewHolder(RecyclerView.ViewHolder viewHolder, int position) {

        TextView textView = (TextView) viewHolder.itemView.findViewById(R.id.stick_text);
        textView.setText(String.valueOf(getItem(position).charAt(0)));
//        viewHolder.itemView.setBackgroundColor(Color.parseColor("#AA70DB93"));
        viewHolder.itemView.setBackgroundColor(Color.parseColor("#AAffffff"));
        ImageView imageView = (ImageView) viewHolder.itemView.findViewById(R.id.stick_img);

        SecureRandom imgGen = new SecureRandom();
        switch (imgGen.nextInt(3)) {
            case 0:
                imageView.setImageResource(R.drawable.scn1);
                break;
            case 1:
                imageView.setImageResource(R.drawable.jr13);
                break;
            case 2:
                imageView.setImageResource(R.drawable.jr16);
                break;
        }

    }
 
@Override
public void onBindItemViewHolder(final RecyclerView.ViewHolder holder, final int position,
                                 final List<Object> payloads) {
    final PortfolioItemViewHolder itemHolder = (PortfolioItemViewHolder) holder;

    final PortfolioItem item = list.get(position);

    for (Object obj : payloads) {
        if (obj instanceof ItemPriceUpdate) {
            itemHolder.tvHoldingPrice.setText(String.valueOf(item.holdingPrice));
            itemHolder.tvPrice.setText(String.valueOf(item.price));
            itemHolder.tvDelta.setText(String.valueOf(item.delta));
            itemHolder.tvDelta.setTextColor(item.deltaColor);
        }
    }

    itemHolder.rootView.setOnClickListener(v ->
            clickListener.onItemRootViewClicked(this, itemHolder.getAdapterPosition())
    );
}
 
源代码3 项目: Telegram-FOSS   文件: SideMenultItemAnimator.java
private boolean endChangeAnimationIfNecessary(ChangeInfo changeInfo, RecyclerView.ViewHolder item) {
    boolean oldItem = false;
    if (changeInfo.newHolder == item) {
        changeInfo.newHolder = null;
    } else if (changeInfo.oldHolder == item) {
        changeInfo.oldHolder = null;
        oldItem = true;
    } else {
        return false;
    }
    item.itemView.setAlpha(1);
    item.itemView.setTranslationX(0);
    item.itemView.setTranslationY(0);
    dispatchChangeFinished(item, oldItem);
    return true;
}
 
源代码4 项目: Telegram   文件: ThemesHorizontalListCell.java
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
    InnerThemeView view = (InnerThemeView) holder.itemView;
    ArrayList<Theme.ThemeInfo> arrayList;
    int p = position;
    if (position < defaultThemes.size()) {
        arrayList = defaultThemes;
    } else {
        arrayList = darkThemes;
        p -= defaultThemes.size();
    }
    view.setTheme(arrayList.get(p), position == getItemCount() - 1, position == 0);
}
 
源代码5 项目: Telegram   文件: GroupInviteActivity.java
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
    switch (holder.getItemViewType()) {
        case 0:
            TextSettingsCell textCell = (TextSettingsCell) holder.itemView;
            if (position == copyLinkRow) {
                textCell.setText(LocaleController.getString("CopyLink", R.string.CopyLink), true);
            } else if (position == shareLinkRow) {
                textCell.setText(LocaleController.getString("ShareLink", R.string.ShareLink), false);
            } else if (position == revokeLinkRow) {
                textCell.setText(LocaleController.getString("RevokeLink", R.string.RevokeLink), true);
            }
            break;
        case 1:
            TextInfoPrivacyCell privacyCell = (TextInfoPrivacyCell) holder.itemView;
            if (position == shadowRow) {
                privacyCell.setText("");
                privacyCell.setBackgroundDrawable(Theme.getThemedDrawable(mContext, R.drawable.greydivider_bottom, Theme.key_windowBackgroundGrayShadow));
            } else if (position == linkInfoRow) {
                TLRPC.Chat chat = MessagesController.getInstance(currentAccount).getChat(chat_id);
                if (ChatObject.isChannel(chat) && !chat.megagroup) {
                    privacyCell.setText(LocaleController.getString("ChannelLinkInfo", R.string.ChannelLinkInfo));
                } else {
                    privacyCell.setText(LocaleController.getString("LinkInfo", R.string.LinkInfo));
                }
                privacyCell.setBackgroundDrawable(Theme.getThemedDrawable(mContext, R.drawable.greydivider, Theme.key_windowBackgroundGrayShadow));
            }
            break;
        case 2:
            TextBlockCell textBlockCell = (TextBlockCell) holder.itemView;
            textBlockCell.setText(invite != null ? invite.link : "error", false);
            break;
    }
}
 
@Override
public void onBindItemViewHolder(final RecyclerView.ViewHolder holder, final int position) {
    final ItemViewHolder itemHolder = (ItemViewHolder) holder;

    final Contact contact = filteredList.get(position);

    itemHolder.tvItem.setText(contact.name);
    itemHolder.imgItem.setImageResource(contact.profileImage);

    itemHolder.rootView.setOnClickListener(v ->
            clickListener.onItemRootViewClicked(this, itemHolder.getAdapterPosition())
    );
}
 
源代码7 项目: revolution-irc   文件: ChatMessagesAdapter.java
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
    int viewType = holder.getItemViewType();
    Object msg = getMessage(position);
    if (viewType == TYPE_MESSAGE || viewType == TYPE_MESSAGE_WITH_NEW_MESSAGE_MARKER) {
        ((MessageHolder) holder).bind((MessageItem) msg);
    } else if (viewType == TYPE_DAY_MARKER) {
        ((DayMarkerHolder) holder).bind((DayMarkerItem) msg);
    }
}
 
@Override protected void animateAddImpl(final RecyclerView.ViewHolder holder) {
  ViewCompat.animate(holder.itemView)
      .scaleX(1)
      .scaleY(1)
      .setDuration(getAddDuration())
      .setInterpolator(mInterpolator)
      .setListener(new DefaultAddVpaListener(holder))
      .setStartDelay(getAddDelay(holder))
      .start();
}
 
源代码9 项目: Aria   文件: RvItemClickSupport.java
@Override public boolean onKey(View v, int keyCode, KeyEvent event) {
  if (mOnItemKeyListener != null) {
    RecyclerView.ViewHolder holder = mRecyclerView.getChildViewHolder(v);
    return mOnItemKeyListener.onKey(v, keyCode, holder.getAdapterPosition(), event);
  }
  return false;
}
 
源代码10 项目: Telegram   文件: JoinGroupAlert.java
@Override
public boolean isEnabled(RecyclerView.ViewHolder holder) {
    return false;
}
 
源代码11 项目: SendBird-Android   文件: GroupChannelListAdapter.java
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View view = LayoutInflater.from(parent.getContext())
            .inflate(R.layout.list_item_group_channel, parent, false);
    return new ChannelHolder(view);
}
 
@Override
public final void onBindViewHolder(RecyclerView.ViewHolder holder, int position,
        List<Object> payloads) {
    onBindViewHolder(holder, position);
}
 
@Override
public int getMovementFlags(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) {
    return makeMovementFlags(0, ItemTouchHelper.START | ItemTouchHelper.END);
}
 
private void drawStickyHeader(Canvas canvas, RecyclerView.ViewHolder stickyHeader) {
    drawHeader(canvas, stickyHeader, mDrawingInfo.sticky.left, mDrawingInfo.sticky.top);
}
 
源代码15 项目: prayer-times-android   文件: SortFragment.java
@Override
public boolean onMove(@NonNull RecyclerView recyclerView, @NonNull RecyclerView.ViewHolder viewHolder, @NonNull RecyclerView.ViewHolder target) {
    onItemMove(viewHolder.getAdapterPosition(), target.getAdapterPosition());
    return true;
}
 
源代码16 项目: HaoReader   文件: MyItemTouchHelpCallback.java
@Override
public void onSwiped(@NonNull RecyclerView.ViewHolder viewHolder, int direction) {
    if (onItemTouchCallbackListener != null) {
        onItemTouchCallbackListener.onSwiped(viewHolder.getLayoutPosition());
    }
}
 
源代码17 项目: AdapterDelegates   文件: AbsDelegationAdapter.java
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
    delegatesManager.onBindViewHolder(items, position, holder, null);
}
 
源代码18 项目: BaseProject   文件: ItemDragAndSwipeCallback.java
@Override
public void onMoved(RecyclerView recyclerView, RecyclerView.ViewHolder source, int fromPos, RecyclerView.ViewHolder target, int toPos, int x, int y) {
    super.onMoved(recyclerView, source, fromPos, target, toPos, x, y);
    mAdapter.onItemDragMoving(source, target);
}
 
源代码19 项目: SectionedRecyclerViewAdapter   文件: Section.java
/**
 * Bind the data to the ViewHolder for the Footer of this Section.
 *
 * @param holder   ViewHolder for the Footer of this Section
 * @param payloads A non-null and non-empty list of merged payloads.
 */
@SuppressWarnings("PMD.EmptyMethodInAbstractClassShouldBeAbstract")
public void onBindFooterViewHolder(final RecyclerView.ViewHolder holder,
                                   @SuppressWarnings("unused") final List<Object> payloads) {
    this.onBindFooterViewHolder(holder);
}
 
protected @NonNull abstract RecyclerView.ViewHolder createHeaderViewHolder(@NonNull ViewGroup parent);