如何使recyclerview始终显示视图的顶部?

问题描述 投票:0回答:1

我有一个recyclerview,里面装有物品,插入新物品时它的动画效果很好。但是经过一定数量的列表后,视图被下推了,我只看到旧项目。目前,我必须向上滚动以每次查看添加的项目。可以说我的recyclerview中有10个项目,当我添加新项目时,屏幕已满...我看到相同的10个项目,必须向上滚动才能看到新项目。我如何始终获得列表的顶视图?

@NonNull
    @Override
    public DashboardHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View itemView = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.card_item,parent,false);
        return new DashboardHolder(itemView);
    }

    @Override
    public void onBindViewHolder(@NonNull DashboardHolder holder, int position) {
        Expense currentExpense = getItem(position);
        holder.title.setText(currentExpense.getTitle());
        holder.description.setText(currentExpense.getDescription());
        holder.amount.setText(String.valueOf(currentExpense.getAmount()));
    }

    class DashboardHolder extends RecyclerView.ViewHolder {
        private TextView title;
        private TextView description;
        private TextView amount;

        public DashboardHolder(@NonNull View itemView) {
            super(itemView);
            title = itemView.findViewById(R.id.text_expense_title);
            description = itemView.findViewById(R.id.text_expense_description);
            amount = itemView.findViewById(R.id.text_expense_amount);
        }
    }```


  [1]: https://i.stack.imgur.com/093f8.jpg
java android android-recyclerview
1个回答
0
投票
        LinearLayoutManager layoutManager = new LinearLayoutManager(MainActivity.this);
        layoutManager.setReverseLayout(true);
        recyclerView.setLayoutManager(layoutManager);

用于反转项目遍历和布局顺序。

也许您想测试:layoutManager.setStackFromEnd(true);列表将从视图底部开始填充其内容。

或者也许您需要使用recyclerView.scrollToPosition(position);

© www.soinside.com 2019 - 2024. All rights reserved.