java - Android:反转 RecyclerView 位置

标签 java android android-recyclerview

我正在设置一个行为类似于列表的 RecyclerView,我希望在列表底部有一个按钮,当单击它时会添加更多 View ,我认为更简单的方法是将位置 0 作为第一个一个在底部,并将位置增加到顶部,因此我可以在单击位置 0 中的 View 时添加 View 。 如果有解决此问题的更好方法,请分享。

这是我的适配器:

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 个小时我一直在研究它并且我遇到了逻辑故障

最佳答案

通过将这一行添加到 LayoutManager .setReverseLayout(true);

关于java - Android:反转 RecyclerView 位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36671788/

相关文章:

java - 是否有可能获得从标准谷歌地图导航到我们的应用程序到达目的地的估计时间?

java - 构建器模式适用于哪里

android - 如果textview太长,布局就会被破坏

java - Spring Boot 更新数据

java - 单击 ListView 行时如何处理 JSON 的 NULL 结果?

Android - 在布局之间切换

android - 如何通过哈希比较限制 API key 的使用

android - 如何使用 Processing for Android 在 Google Cardboard 设备中显示立体图像?

android - RecyclerView 不更新具有位置的项目

android - getItemCount 中的 RecyclerView NullPointerException 问题