繁体   English   中英

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

[英]How to make the recyclerview always show the top part of the view?

我有一个 recyclerview,里面装满了物品,当插入新物品时,它有一个不错的 animation。 但是在一定数量的列表之后,视图被推下,我只看到旧项目。 目前我每次都必须向上滚动才能看到添加的项目。 假设我的 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
        LinearLayoutManager layoutManager = new LinearLayoutManager(MainActivity.this);
        layoutManager.setReverseLayout(true);
        recyclerView.setLayoutManager(layoutManager);

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

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

或者你可能需要使用recyclerView.scrollToPosition(position);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM