簡體   English   中英

Android:反轉RecyclerView職位

[英]Android: invert RecyclerView positions

我正在設置一個像列表一樣的RecyclerView,我想在列表底部有一個按鈕,當點擊時添加更多視圖,我認為更簡單的方法是將位置0作為第一個在在底部,並將位置增加到頂部,因此我可以在單擊位置0中的視圖時添加視圖。 如果對這個問題有更好的方法,請分享。

這是我的適配器:

public class AddEventsAdapter extends RecyclerView.Adapter<AddEventsAdapter.ViewHolder> {

   public List<String> items = new ArrayList<>();



    public void addItem(String name) {
        notifyItemInserted(items.size() - 1);
        items.add(name);

    }

    public void removeItem(int position) {
        items.remove(position);
        notifyItemRemoved(position);
        notifyItemRangeChanged(position, items.size());
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        LayoutInflater inflater = LayoutInflater.from(parent.getContext());
        View view = inflater.inflate(R.layout.add_event_item, parent, false);

        return new ViewHolder(view);
    }

    @Override
    public int getItemCount() {
        return items.size();
    }

    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        holder.setData(position);
        holder.eventName.setText(i + "");
        if(position == 0)
        {
            holder.theLayout.setBackgroundColor(Color.parseColor("#7F9099"));
            holder.eventName.setText("Add");
        }

    }


    static int i;
    class ViewHolder extends RecyclerView.ViewHolder{

        public TextView eventName;
        public RelativeLayout theLayout;

        public ViewHolder(final View itemView) {
            super(itemView);
            eventName = (TextView)itemView.findViewById(R.id.eventName);
            theLayout = (RelativeLayout)itemView.findViewById(R.id.backgroundevent);

            theLayout.setId(++i);


        }

        public void setData(final int position) {
            theLayout.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    if (position == items.size() - 1) {
                        addItem("");
                    } else {
                        removeItem(position);
                    }
                }
            });
        }


    }


}

您可能會注意到一些錯誤,我在過去的10個小時內已經完成了這個錯誤,而且我遇到了邏輯故障

它通過addind這行解決了LayoutManager .setReverseLayout(true);

您可以在列表末尾添加頁腳視圖,然后在其中添加按鈕。 這是在回收站視圖中創建頁腳的鏈接https://github.com/u3breeze/android-RecyclerView-WithHeaderAndFooter 您可以以正常方式添加視圖

暫無
暫無

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

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