簡體   English   中英

如何在網格 recyclerview 中創建加號圖標以添加圖像?

[英]How to create plus icon in grid recyclerview for adding images?

在此處輸入圖片說明

如何在reyclerview使用gridlayoutManager創建這樣的東西? 如何以有效的方式執行此操作,以便每當我單擊加號圖像時,我都可以從我的設備中獲取新圖像,以便圖像顯示在底部的網格或新列中?

您可以創建兩種布局:一種帶有 + 圖標,另一種是為您的網格適配器顯示圖像。 然后您可以檢查位置並返回您想要的布局。

      private static final int VIEW_TYPE_ONE = 1;
      private static final int VIEW_TYPE_TWO = 2;

      // Determines the appropriate ViewType according to the position
@Override
public int getItemViewType(int position) {

    if (position == 0 ) {

        return VIEW_TYPE_ONE;
    } else {

        return VIEW_TYPE_TWO;
    }
}

然后在您的 onCreateviewHolder 中:

     // Inflates the appropriate layout according to the ViewType.
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View view;

    if (viewType == VIEW_TYPE_ONE) {
        view = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.your_plus_icon_layout, parent, false);
        return new PlusIconViewHolder(view);
    } else if (viewType == VIEW_TYPE_MESSAGE_TWO) {
        view = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.your_normal_image_layout, parent, false);
        return new NormalViewHolder(view);
    }

    return null;
}

在您的 onBindViewHolder 中,

@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
    switch (holder.getItemViewType()) {
        case VIEW_TYPE_ONE:
             holder.bind();
            break;
        case VIEW_TYPE_MESSAGE_TWO:
             holder.bind(imageList.get(position -1));
    }
}

請注意,我已發送位置 - 列表中的 1 個項目。這是因為圖像將從 1 個索引顯示,因為索引 0 被您的 + 圖標占用。 是的,您也必須為各自的功能創建兩個 veiwholder。

您需要創建一個支持兩種類型項目的適配器 - 照片一種和“+”一種。 然后在您提供給適配器的列表中的第一個位置添加特殊的“+”項。

檢查此鏈接:Vitaly Vivchar 的“具有多種項目類型的 RecyclerView ”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM