加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – Android:反转RecyclerView的位置

发布时间:2020-12-15 04:33:44 所属栏目:Java 来源:网络整理
导读:我正在设置一个像列表一样的RecyclerView,我想在列表底部有一个按钮,当点击时添加更多视图,我认为更简单的方法是将位置0作为第一个位于在底部,并将位置增加到顶部,因此我可以在单击位置0中的视图时添加视图. 如果对这个问题有更好的方法,请分享. 这是我的适
我正在设置一个像列表一样的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);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读